Dockerfile指令
Dockerfile指令
Docker 官方的 Dockerfile 指令。
https://docs.docker.com/reference/dockerfile/
Dockerfile 的注释方式是 # 号开头。
-
ADD从构建环境的上下文或远程 URL 复制文件至镜像,如果是从一个本地路径添加一个归档文件,那么它会被自动解压。由于 ADD 指令覆盖的功能相当广泛,一般最好还是使用相对简单的
COPY指令来复制构建环境上下文的文件和目录,并用RUN指令配合curl或wget来下载远程资源(这样还可以在同一指令中处理和删除下载文件)。 -
CMD
当容器启动时候执行的指令,如果还定义了ENTRYPOINT,该指令被解释为 ENTRYPOINT 的参数,(在这种情况下,请确保使用的是 exec 格式)。CMD 指令也会被 docker run 命令中镜像名称后面的所有参数覆盖。假如定义了多个 CMD 指令,那么只有最后一个生效,前面出现过的 CMD 指令全部无效(包括出现在基础镜像中的那些)。 -
COPY
用于从构建环境的上下文复制文件至镜像。它有两种形式, COPY src dest 以及 COPY ["src","dest"],两者皆从上下文中的 src 复制文件或目录至容器内的 dest。如果路径中有空格的话,那么必须使用 JSON 数组的格式。通配符可以用来指定多个文件或目录。注意:不能指定上文以外的 src 路径(例如 ../another_dir/myfile 是不管用的)。 -
ENTERPONIT
设置一个容器启动时运行的可执行文件(以及默认参数)。任何 CMD 指令或 docker run 命令中镜像名称之后的参数,将作为参数传给这个可执行文件。 ENTRYPOINT 指令通常提供 "启动" 脚本,目的是在解析参数之前,对变量和服务进行初始化。 -
ENV
设置镜像内的环境变量。这些变量可以被随后的指令引用。例如:ENV MY_VERSION 1.3 RUN apt-get install -y mypackage=$MY_VERSION在镜像中这些变量仍然可用。
-
EXPOSE
向 Docker 表示该容器将会有一个进程监听所指定的端口。提供这个信息的目的是用于连接容器或在执行 docker run 命令时通过 -P 参数把端口发布开来;EXPOSE 指令本身并不会对网络有实质性的改变。 -
FROM
设置 Dockerfile 使用的基础镜像;随后的指令皆执行于这个镜像之上。基础镜像以 "镜像:标签" (IMAGE:TAG) 的格式表示 (例如 debian:wheezy)。如果省略标签,那么就被视为最新(lastest),但是依旧建议一定要给标签设置为某个特定版本,以免出现任何意想不到的事情。 FROM 必须为 Dockerfile 的第一条指令。 -
MAINTAINER
把镜像中的 “作者” 元数据设定为指定的字符串。可以通过 docker inspect -f {{.Author}} IMAGE 这个命令来查看该信息。这个指令通常用于设置镜像维护者的姓名和联系方式。 -
OUTBUILD
指定当镜像被作为另一个镜像的基础镜像时将会执行的指令。对于处理一些将要添加到子镜像的数据,这个指令将会非常有用,(例如,把代码从一个已选定的目录中复制出来,并在执行构建脚本时使用它)。 -
RUN
在容器内执行指定的指令,并把结果保存下来。 -
USER
设置任何后续的 RUN、CMD、或 ENTRYPOINT 指令执行时所有的用户(用户名或UID)。请注意,UID 在主机和容器中是相通的,但是用户名则可能被分配到不同的 UID,导致设置权限时变的复杂。 -
VOLUME
指定为数据卷的文件或目录,如果该文件或目录已经在镜像中存在,那么当容器启动的时候,它就会被复制到这个卷。如果提供了多个参数,那么就会解释成多个数据卷。出于对可移植性和安全性的考虑,不能在 Dockerfile 中指定数据卷将会使用的主机的目录。 -
WORKDIR
对任何后续的 RUN、CMD、ENTRYPOINT、ADD 或 COPY 指令设置工作目录。这个指令可多次使用。支持使用相对路径,按上次定义的 WORKDIR 解析。

浙公网安备 33010602011771号