- FROM
指定 base 镜像
- MAINTAINER
设置镜像的作者,可以使任意字符
- COPY
将文件从 build context 复制到镜像
COPY 支持两种形式:COPY src dest 与 COPY ["src", "dest"]。
注意:src 只能指定 build context 中的文件或目录。
- ADD
与 COYP 类似,从 build context 复制文件到镜像。不同的是,如果 src 是归档文件( tar、zip、tgz、xz等),文件会被自动解压到dest。
- ENV
设置环境变量,环境变量可被后面的指令使用。例如:
ENV MY_VERSION 1.3 RUN apt-get install -y mypackage=$MY_VERSION
- EXPOSE
指定容器中的进程会监听某个端口,Docker 可以将该端口暴露出来。
- VOLUME
将文件或目录声明为 volume。
- WORKDIR
为后面的 RUN、CMD、ENTRYPOINT、ADD 或 COPY 指令设置镜像中的当前工作目录。
- RUN
在容器中运行指定的命令
- CMD
容器启动时运行指定的命令。
Dockerfile 中可以有多个 CMD 指令,但只有最有一个生效。CMD 可以被 docker run 之后的参数替换。
- ENTRYPOINT
设置容器启动时运行的命令
Dockerfile 中可以有多个 ENTRYPOINT 命令,但只有最后一个生效。CMD 或 docker run 之后的参数会被当做参数传递给 ENTRYPOINT。
下面我们来看一个较为全面的 Dockerfile,如下图:
注:Dockerfile 支持以“#” 开头的注释。
构建镜像,如下图显示:
①、构建前确保 build context 中存在需要的文件。
②、一次执行 Dockerfile 指令,完成构建。