即学即用Docker(五):使用Docker Commit构建镜像
2019-09-03阅读 2720

接上篇文章,我们继续介绍镜像,在上一篇文章给大家讲解了镜像的一些基本概念和最基本的操作。今天我们继续和大家说说如何构建镜像

 

镜像的构建有三种方法:

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端口。


 31.jpg

步骤 2   构建完以后,我们通过浏览器可以访问容器nginx1。

32.jpg

 

步骤 3   现在进入容器修改nginx1的index.html文件内容,以便构建一个新的容器

33.jpg



步骤 4   使用浏览器,验证nginx1容器内容修改成功。

34.jpg

 

步骤 5   将容器nginx1保存为镜像,新镜像命名为nginx:v1.1。并提交新的镜像

35.jpg


 

步骤 6   比较nginx:v1.1和nginx:latest两个镜像,发现nginx:v1.1多了一个镜像层。

nginx:v1.1的镜像

36.jpg


 

nginx的镜像

37.jpg


我们清楚的看到nginx:v1.1多了一个镜像层

 

步骤 7   查看现有的镜像


 38.jpg

 

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

头像
韩梅
60
文章总数
165599
总阅读数