centos7下安装docker(3.3创建镜像--修改dockerfile)

1.我们在制作dockerfile的时候可能有些命令无法执行,导致镜像无法创建成功,这时我们可以修改dockerfile,从而达到我们的目的

查看Dockerfile内容

centos7下安装docker(3.3创建镜像--修改dockerfile)

创建新的镜像,失败

centos7下安装docker(3.3创建镜像--修改dockerfile)

 Dockerfile在执行新的命令的时候:这里是第三步出现错误,可以看到第二部成功创建了一个新的镜像层

centos7下安装docker(3.3创建镜像--修改dockerfile)

 我们可以进行出现错误的上一层,这里是第二层,进行排错

centos7下安装docker(3.3创建镜像--修改dockerfile)

centos7下安装docker(3.3创建镜像--修改dockerfile)

我们可以发现   确实没有这个软件包

在本例子中很容易发现是我找的软件包有问题,在第二部新产生的镜像中,重新安装ftp

centos7下安装docker(3.3创建镜像--修改dockerfile)

可以安装成功

centos7下安装docker(3.3创建镜像--修改dockerfile)

可以使用docker  commit去保存这个新镜像

centos7下安装docker(3.3创建镜像--修改dockerfile)

新镜像创建成功

centos7下安装docker(3.3创建镜像--修改dockerfile)

新镜像中ftp和kun文件已经被创建和安装

centos7下安装docker(3.3创建镜像--修改dockerfile)

个人感悟:

本节讨论的是调整dockerfile,但是我最后是通过调整分层镜像+docker commit的方法进行镜像的制作的,我感觉我们可以通过更改Dockerfile文件内容来进行更改

查看Dockerfile内容

centos7下安装docker(3.3创建镜像--修改dockerfile)

创建新的镜像,肯定是错误的,下面我们更改Dockerfile的内容,重新创建镜像,看是否会成功

centos7下安装docker(3.3创建镜像--修改dockerfile)

Dockerfile已经进行更改

centos7下安装docker(3.3创建镜像--修改dockerfile)

 创建新的镜像,名为centos-kutree

centos7下安装docker(3.3创建镜像--修改dockerfile)

 centos7下安装docker(3.3创建镜像--修改dockerfile)

查看镜像是否存在

centos7下安装docker(3.3创建镜像--修改dockerfile)

证明已经存在,说明在制作镜像出现问题的时候,我们可以更改Dockerfile重新创建镜像,当然如果无法排查问题出现的原因的情况下可以使用第一种办法:进入上层镜像,找到问题,重新保存镜像!

镜像的cache缓存作用

更改Dockerfile,新增加一个touch li

centos7下安装docker(3.3创建镜像--修改dockerfile)

之前我做的实验的名为centos-ftpdkun中开始的命令也是touch kun

centos7下安装docker(3.3创建镜像--修改dockerfile)

可以用docker history 来查看我的centos-ftpdkun的创建过程

centos7下安装docker(3.3创建镜像--修改dockerfile)

 在创建新的镜像时,第二部使用的是cache缓存镜像,这里的镜像ID与以上centos-ftpdkun是一致的,这就是镜像的缓存性质。

个人感悟:提升了创建镜像的速度

centos7下安装docker(3.3创建镜像--修改dockerfile)