当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
- 1.从已经创建的容器中更新镜像,并且提交这个镜像
- 2.使用 Dockerfile 指令来创建一个新的镜像
Dockerfile 定制镜像
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
还以之前定制 tomcat
镜像为例,这次我们使用 Dockerfile 来定制
-
-
- 案例:创建一个镜像(基于tomcat) 里面要有一个index.html,并写入Hello qfjy Docker
- 在一个空白目录中,建立一个文本文件,并命名为
Dockerfile
:
其内容为:
这个 Dockerfile 很简单,一共就两行。涉及到了两条指令,FROM
和 RUN
。
-
- build构建镜像
回到之前定制的 tomcat 镜像的 Dockerfile 来。现在我们明白了这个 Dockerfile 的内容,那么让我们来构建这个镜像吧。
在 Dockerfile
文件所在目录执行:
从命令的输出结果中,我们可以清晰的看到镜像的构建过程。在 Step 2
中,如同我们之前所说的那样,RUN
指令启动了一个容器 9f8…
,执行了所要求的命令,并最后提交了这一层 9f8..
,随后删除了所用到的这个容器 d93..
。
这里我们使用了 docker build
命令进行镜像构建
-
-
- 案例:基于上一个镜像(基于tomcat) 将ROOT内多余的文件都删除。只保留index.html
1、修改Dockerfile
- 构建镜像
docker build –t 镜像名 .
- 查看镜像列表 docker images
- 删除虚拟镜像
docker image prune
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)