中国领先的IT技术网站
|
|

Docker终极指南:为什么Docker能做这么多事(3)

本教程有三个目标:说明Docker解决的问题、说明它如何解决这个问题、以及说明它使用了哪些技术来解决这个问题,这不是一篇教你怎么运行安装Docker的教程。

作者:校译:梁晓勇 李颖杰来源:dockerone|2015-01-14 14:27

开发者大赛路演 | 12月16日,技术创新,北京不见不散


超级、无比简单的步骤说明

第一步,安装Docker。

Docker命令工具需要root权限才能工作。你可以将你的用户放入docker组来避免每次都要使用sudo。

第二步,使用以下命令从公共registry下载一个镜像:

  1. $> docker pull ubuntu:latest 
  2. ubuntu:latest: The image you are pulling has been verified 
  3. 3b363fd9d7da: Pull complete 
  4. .....<bunch of downloading-stuff output>..... 
  5. 8eaa4ff06b53: Pull complete 
  6. Status: Downloaded newer image for ubuntu:latest 
  7. $> 

这个公共registry上有你需要的几乎所有东西的镜像:Ubuntu、Fedora、Postgresql、MySQL、Jenkins、Elasticsearch、Redis等等。Docker开发人员在这个公共registry里维护着数个镜像,不过你能从上面拉取大量来自用户发布的自建镜像。

也许你需要或想要一个私有的registry(用于开发应用之类的容器),你可以先看看这个。现在,有好几个方式可以设置你自己的私有registry。你也可以买一个。

第三步,列出你的镜像:

  1. $> docker images 
  2. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 
  3. ubuntu latest 8eaa4ff06b53 4 days ago 192.7 MB 

第四步,从该镜像上创建一个容器。

  1. $> docker run --rm -ti ubuntu /bin/bash 
  2. root@4638a40c2fbb:/# ls 
  3. bin boot dev etc home lib lib64 media mnt opt proc root...... 
  4. root@4638a40c2fbb:/# exit 

上一条命令的简要说明:

--rm:告诉Docker一旦运行的进程退出就删除容器。这在进行测试时非常有用,可免除杂乱
-ti:告诉Docker分配一个伪终端并进入交互模式。这将进入到容器内,对于快速原型开发或尝试很有用,但不要在生产容器中打开这些标志
ubuntu:这是容器立足的镜像
/bin/bash:要运行的命令,因为我们以交互模式启动,它将显示一个容器的提示符

在运行run命令时,你可指定链接、卷、端口、窗口名称(如果你没提供,Docker将分配一个默认名称)等等。

现在,我们在后台运行一个容器:

  1. $> docker run -d ubuntu ping 8.8.8.8 
  2. 31c68e9c09a0d632caae40debe13da3d6e612364198e2ef21f842762df4f987f 
  3. $> 

输出的是分配的ID,因为是随机的,你的将有所不同。我们来检查一下容器是否起来了:

  1. $> docker ps 
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
  3. 31c68e9c09a0 ubuntu:latest "ping 8.8.8.8" 2 minutes ago Up 2 minutes loving_mcclintock 

就在那,它被自动分配了一个叫loving_mcclintock的名称。我们看看容器里正在发生什么:

  1. $> docker exec -ti loving_mcclintock /bin/bash 
  2. root@31c68e9c09a0:/# ps -aux|grep ping 
  3. root 1 0.0 0.0 6504 636 ? Ss 20:46 0:00 ping 8.8.8.8 
  4. root@31c68e9c09a0:/# exit 

我们所做的是在容器里运行程序,这里的程序是/bin/bash。-ti标志与docker run的作用相同,将我们放置到容器的控制台里。

结尾

差不多就是这样了。有太多的东西可以讲,但那超出了本文的范围。

Docker的基本结构:

  1. https://docs.docker.com/introd ... cker/ 
  2. http://blog.docker.com/2014/03 ... iner/ 

与Docker相关的项目:

  • Phusion Docker baseimage
  • Shipyard
  • DockerUI
  • CoreOS
  • Decking
  • Docker-py
  • Docker-map
  • Docker-fabric

原文链接:http://dockerone.com/article/133

【编辑推荐】

  1. Docker CEO 畅谈 Docker编排工具:2015开源项目最重要的大事
  2. 克服跨洋网络延迟,使用Docker Hub Mirror加速Docker官方镜像下载
  3. Dockerfile最佳实践(二):Docker变化后你应当做什么
  4. 容器领域趋势分析:多点开花,Docker不再一家独大
  5. 从docker-hub和docker-registry看优秀的后端服务设计实现
【责任编辑:Ophira TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

热门职位+更多

读 书 +更多

Microsoft SQL Server 2005技术内幕:存储引擎

本书是Inside Microsoft SQL Server 2000的作者Kalen Delaney的又一经典著作,是Inside Microsoft SQL Server 2005系列四本著作中的一本。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动