原文:http://os.51cto.com/art/201407/444789.htm

本文将介绍如何安装Docker,并用它高效地管理虚拟机。Docker是一种开源Linux虚拟化平台,以便广大开发人员和系统管理员轻松地开发、部署和执行分布式应用程序。Docker包括这几个部分:Docker引擎(一个轻型运行时和虚拟化层),封装和版本控制虚拟机的工具(类似源代码软件库),以及Docker Hub(一项共享应用程序、实现工作流自动化的云端服务)。Docker让应用程序得以由组件迅速装配而成,消除了开发环境、质量控制和生产环境之间的磨擦。

1 首项附注

以本文为例,我准备把docker安装在Ubuntu 14.04操作系统上。虚拟化软件市场上有几项标准硬件虚拟化技术,比如KVM、Xen或Hyper-V。可是标准虚拟化技术太过笨拙,无法对Linux上的单个应用程序进行虚拟化处理。我们可以克服这种情形,只要使用Linux容器(Linux Container):对操作系统层面的虚拟化而言,这是一种不错的替代方案。Linux容器是非常有用的方式,可以让开发/测试环境出现在安全有保障的一堆容器中。Docker提供了这种用途的Linux容器环境。

2 安装

如前所述,我准备把docker安装在Ubuntu上。在这一章节,我将为大家介绍安装docker的两种方法;在2a这部分中,我使用来自Ubuntu软件库的docker版本,这个版本由Ubuntu维护,提供整整5年的长期支持版(LTS)支持,但它不是最新版本。在2b这部分中,我将使用来自Ubuntu ppa软件库的最新版本。由于docker正在大力开发之中,来自2b)的最新Docker版本极可能适合大多数用户。请使用方法2a或方法2b,但别同时使用这两种方法!

2a 从官方的Ubuntu软件库来安装

想安装docker,请使用下列命令:


  1. sudo apt-get update  
  2. sudo apt-get install docker.io 


然后创建符号链接,以便在外壳上使用起来更容易。


  1. sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker  
  2. sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io 


2b安装最新的docker版本

想从docker.io软件库安装最新的docker版本,运行这个命令:


  1. curl -s https://get.docker.io/ubuntu/ | sudo sh 


3 准备外壳环境

现在,我将把我的user=srijan添加到docker组:


  1. sudo usermod -a -G docker srijan 


或者使用:


  1. sudo usermod -a -G docker $USER 


这里,我会退出当前会话,然后再重新登录。现在,我将添加docker配置文件,以便向系统通知其位置。


  1. sudo vi /etc/default/docker.io 


  1. DOCKER="/usr/bin/docker.io"


现在重启服务,如下所示:


  1. sudo service docker.io restart 


4 容器管理

我准备随Ubuntu操作系统一同启动容器。我会下载docker映像,如下所示:


  1. docker pull ubuntu 


注意:pull命令用于从注册中心(registry)拉取映像或软件库。

现在我将使用下面这个命令,登录进入到Ubuntu容器的bash外壳:


  1. docker run -i -t ubuntu /bin/bash 


仅仅为了确认,我将检查容器的IP,如下所示:

1. root@fd98ee950252:/# ifconfig   
2. eth0      Link encap:Ethernet  HWaddr 5a:a6:c6:88:f2:48    
3.           inet addr:172.17.0.3  Bcast:0.0.0.0  Mask:255.255.0.0  
4.           inet6 addr: fe80::58a6:c6ff:fe88:f248/64 Scope:Link  
5.           UP BROADCAST RUNNING  MTU:1500  Metric:1  
6.           RX packets:7 errors:0 dropped:2 overruns:0 frame:0  
7.           TX packets:8 errors:0 dropped:0 overruns:0 carrier:0  
8.           collisions:0 txqueuelen:1000   
9.           RX bytes:558 (558.0 B)  TX bytes:648 (648.0 B)  
10.  
11. lo        Link encap:Local Loopback    
12.           inet addr:127.0.0.1  Mask:255.0.0.0  
13.           inet6 addr: ::1/128 Scope:Host  
14.           UP LOOPBACK RUNNING  MTU:1500  Metric:1  
15.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
16.           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
17.           collisions:0 txqueuelen:0   
18.           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  
19.  
20. root@fd98ee950252:/#


我容器上的IP地址为172.17.0.3。同样,我还可以使用其他窗口。想编辑容器,只要键入:


  1. exit 


同样,你可以有其他的操作系统容器,比如说。

我想使用Debian容器,就要使用代码:


  1. docker run -i -t debian /bin/bash 


如果你想有某个发行版,那么就要使用这个命令:


  1. docker run -i -t ubuntu:12.04 /bin/bash 


它会创建ubuntu12.04容器。我会反复核实,如下所示:

1. root@44b56100fd1f:/# cat /etc/lsb-release   
2. DISTRIB_ID=Ubuntu
3. DISTRIB_RELEASE=12.04  
4. DISTRIB_CODENAME=precise
5. DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"
6. root@44b56100fd1f:/#