接上篇文章,我们继续介绍镜像,在上一篇文章给大家讲解了镜像的一些基本概念和最基本的操作。今天我们继续和大家说说如何构建镜像
镜像的构建有三种方法: 1. 基于运行的容器状态生成新的镜像,即docker commit; 2. 基于Dockerfile构建镜像,即docker build; 3. 利用Docker Hub自动构建镜像。
那这篇文章就让我们霁一下使用docker commit来构建镜像
通过前面的理论我们已经知道要运行容器就需要使用镜像,显然使用现成的镜像(无论是从Docker Hub还是从别人处获取)在方便不过了。但是实际工作中,现成的镜像往往不能完全满足我们的需求。那这个时候就需要我们基于已有的镜像去构建新的镜像。Docker提供的docker commit命令很好的实现了这一功能,其过程可以总结为: 1) 基于已有的镜像运行容器; 2) 进入容器修改容器; 3) 利用docker commit生成新的镜像。 下面就让我们来看一下示例:
做个小例子:
此示例将下载一个nginx容器,并改变里面的index.html文件内容,生成一个新的镜像并提交,同时让大家借助此实验了解镜像分层的概念。
步骤 1 在后台运行一个nginx容器,取名为nginx1,并映射到宿主机80端口。
 步骤 2 构建完以后,我们通过浏览器可以访问容器nginx1。 
步骤 3 现在进入容器修改nginx1的index.html文件内容,以便构建一个新的容器 
步骤 4 使用浏览器,验证nginx1容器内容修改成功。 
步骤 5 将容器nginx1保存为镜像,新镜像命名为nginx:v1.1。并提交新的镜像 
步骤 6 比较nginx:v1.1和nginx:latest两个镜像,发现nginx:v1.1多了一个镜像层。 nginx:v1.1的镜像 
nginx的镜像 
我们清楚的看到nginx:v1.1多了一个镜像层
步骤 7 查看现有的镜像

现在使用docker commit已经完成了新镜像的构建,你也可以去试试了
|