前面介绍了怎么通过容器生成镜像,这里来记录一下 DockerFile 构建镜像,学习参考来自 菜鸟教程
作者:IT王小二
博客:https://itwxe.com
一、DockerFile是什么
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
– 摘自菜鸟教程
说人话就是 Docker 提供了一系列的指令,Docker 引擎可以通过这些指令来构建出镜像。
二、DockerFile指令
1 FORM
FORM 基础镜像
必须放在 DOckerfile 的第一行,表示从哪个 基础镜像 开始构建。
2 MAINTAINET
MAINTAINET 作者名称
指定维护者的信息。
3 COPY
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
[--chown=<user>:<group>]:可选参数,用户改变复制到容器内文件的拥有者和属组
<目标路径>:镜像内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建
复制文件到镜像,例如:
COPY hom* /mydir/
COPY hom?.txt /mydir/
和 ADD 不一样的是源路径不能访问网络资源,也不会自动解压压缩包。
4 ADD
ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:
- ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>,源路径可以使用网络资源
- ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定
5 RUN
shell 格式:
RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令
exec 格式