CMD
指定容器启动时要运行的命令。使用数组结构去声明。不然docker会在命令前加上 /bin/sh -c。 docker run命令可以覆盖CMD指令。
ENTERPOINT
docker run命令中指定的任何参数都会被当作参数再次传递给ENTERPOINT指令中指定的命令。也是数组结构声明。
WORKDIR
创建一个新容器时,在容器内部设置一个工作目录, ENTERPOINT 和 / 或 CMD 指定的程序会在这个目录下执行。
ENV
用来在镜像构建过程中设置环境变量。这个新环境变量可以在后续的任何RUN指令中使用。
docker run 命令的-e标志来传递环境变量。这些变量只会在运行时有效。
USER
指定该镜像以什么样的用户去执行。
VOLUME
向基于镜像创建的容器添加卷。卷时存在于一个或者多个容器内的特定的目录,这个目录可以绕过联合文件系统,提供共享数据或者对数据进行持久化。
- 卷可以在容器间共享和重用
- 一个容器可以不是必须和其他容器共享卷
- 对卷的修改是立马生效的
- 对卷的修改不会对更新镜像产生影响
- 卷会一直存在,直到没有任何容器再使用它
ADD
用来将构建环境下的文件和目录复制到镜像中。源文件为构建目录下的或者URL,不能对构建目录或者上下文之外的文件进行ADD操作。本地压缩文件,会自动解压。
COPY
COPY很像ADD,但是不会去做文件提取和解压工作。如果目的位置不存在,Docker会自动创建所需要的目录结构
ONBUILD
镜像触发器。当一个镜像被用作其他镜像的基础镜像的时候,触发器会被执行。按照指定的顺序执行。只能被子镜像执行一次。
网友评论