我们除了通过 commit 的方式来构建 docker 镜像外,Dockerfile
是另一种构建镜像的方式。Dockerfile
是一个文本文件,里面包含了打包 docker 镜像所需要用到的所有命令,这样,docker 就可以通过读取 Dockerfile
里面的命令来自动化地构建 docker 镜像。相比于 commit,使用Dockerfile
的好处在于其生成镜像的方式更加透明,我们可以一目了然地知道这个镜像是如何一步步生成的,同时构建的镜像也相对较小,文本的形式也方便镜像的管理与复用。
使用 DockerFile 创建镜像
先来复习下,之前我们是如何通过docker commit
生成一个新镜像的:
具体过程见:我的 Docker 笔记
Step 1:首先,我们需要启动一个容器,当我们运行镜像并生成容器时,会在基础镜像的顶部添加新的可写层「容器层」;
Step 2:我们会对容器执行一些操作(比如安装软件)。我们对容器所做的所有更改都将写入此可写容器层,每一个操作都会在上面累加一层,每一层都是前一层变化的增量;
Step 3:执行 docker commit
来基于已有的容器创建一个新的镜像。
![04a0fee5b9ccba024942df4265b02f00.png](https://i-blog.csdnimg.cn/blog_migrate/248905185f534325e42bef54b9b03b1c.jpeg)
DockerFile
其实执行的是相同的步骤。第一步,我们需要使用FROM
命令指定一个基础镜像生成一个容器,然后用一些「镜像操作指令」对容器做一些修改。最后用docker build
命令来生成镜像。
Dockerfile常用指令
类型 | 命令 |
---|