淘先锋技术网

首页 1 2 3 4 5 6 7

步骤1:为我们的容器创建第一个镜像

#以centos镜像作为基础镜像,我们启动自己的容器并在其中执行/bin/bash命令

#注:-t-i参数用于创建一个虚拟的命令行。

sudodockerrun-t-icentos/bin/bash

现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:

yum-yupdate#更新软件包

yuminstallwhich#安装which命令

yuminstallgit#安装Git

安装完成后,按Ctrl+d来退出容器的命令行。

#执行sudodockerps-a,可以看到被我们终止的容器

CONTAINERIDIMAGECOMMANDCREATED……

da9031d3568fcentos:6.4/bin/bash5minutesago…..

把我们所做的改变提交到一个新的容器:

#这里我们创建一个自己的基础容器,容器中安装好了文章中所需的常用工具。读者的容器id可能与文章中的有所不同,以上一步dockerps-a的结果为准。

sudodockercommitda90custom/base

容器成功提交后,执行sudodockerimages,我们会看到刚才提交的容器(如下面的结果所示)。我们就以这个容器为基础容器,再来创建一个新的容器。

REPOSITORYTAGIMAGEIDCREATED

custom/baselatest05b6cecd370b2minutesago

centos6.4539c0211cd7610monthsago

centoslatest539c0211cd7610monthsago…

步骤2:创建新的容器,并安装apache

#以custom/base容器为基础,运行一个新的容器。

sudodockerrun-t-icustom/base/bin/bash

#安装httpd

yuminstallhttpd

步骤3:再次提交新的容器

按Ctrl+d来退出容器的命令行,然后执行命令:

#这个命令会把步骤2中我们安装httpd带来的改变提交到新的名为custom/httpd的容器镜像中。你的容器id可能会和文章中有所不同,以sudodockerps-a命令的结果为准。

sudodockercommitaa6e2fc0b94ccustom/httpd

你应该已经发现了,我们创建了一个带有http服务器并可以复用的容器镜像。你可以根据这种思想,为自己所需的每个组件都创建一个容器,然后把这些容器复用于开发环境或者生产环境。

步骤7:运行http服务器

#-vwillMountavolumefromVMtothecontainerwhichwasalsosharedfromhosttoVagrantVM.

#-v参数把主机共享给虚拟机的一个卷挂载到容器中

#-pforwardVMport80tocontainerport80;VMport80ismappedtohostport8080inVagrantfile

#-p参数把虚拟机的80端口映射到容器的80端口;虚拟机的80端口在Vagrantfile中被绑定到主机的8080端口,也就是:主机8080->虚拟机80->容器80

sudodockerrun-t-i-p80:80-v/vagrant/htdocs:/var/www/htmlcustom/httpd/bin/bash

#启动Apache

apachectl-kstart