赞
踩
FROM <image> [AS <name>]
FROM <image> [:<tag>] [AS <name>]
FROM <image> [@<digest>] [AS <name>]
指定基础镜像
。当前镜像是基于哪个镜像创建的,有点类似 java 中的类继承。FROM 指令必是 Dockerfile 文件中的首条命令。
MAINTAINER <name>
镜像维护者的信息,该命令已经被标记为不推荐使用了。
LABEL <key>=<value> <key>=<value> <key>=<value> ...
指定一些作者、邮箱等信息
。给镜像添加元数据,可以用 LABEL 命令替换 MAINTAINER 命令。
ENV <key> <value>
ENV <key>=<value> ...
设置环境变量
。设置的变量可供后面指令使用。跟 java 中定义变量差不多的意思。
WORKDIR /path/to/workdir
设置工作目录
。在该指令后的 RUN
,CMD
,ENTRYPOINT
,COPY
,ADD
指令都会在该目录执行。如果该目录不存在,则会创建。
RUN <command>
RUN ["executable", "param1", "param2"]
RUN
会在当前镜像的最上面创建一个新层,并且能执行任何的命令,然后对执行的结果进行提交。提交后的结果镜像在 Dockerfile 的后续步骤中可以使用。
ADD [--chown=<user>:<group>] <src>... <dest>
ADD [--chown=<user>:<group>] ["<src>",... "<dest>"]
从宿主机拷贝文件或者文件夹到镜像,也可以复制一个网络文件!如果拷贝的文件是一个压缩包,会自动解压缩。
COPY [--chown=<user>:<group>] <src>... <dest>
COPY [--chown=<user>:<group>] ["<src>",... "<dest>"]
从宿主机拷贝文件或者文件夹到镜像,不能复制网络文件也不会自动解压缩。
VOLUME ["/data"]
创建挂载点
。一般配合 RUN
命令的 -v
参数使用。
EXPOSE <port> [<port>/<protocol>...]
指定容器运行时对外暴露的端口,但是该指定实际上不会发布该端口,它的功能是镜像构建者和容器运行者之间的记录文件。
回到容器命令中的 RUN
命令部分,RUN
命令有 -p
和 -P
两个参数。
-P
就是 随机
端口映射,容器内会随机映射到 EXPOSE
指定的端口。-p
就是 指定
端口映射,告诉运维人员容器内需要映射的端口号。CMD ["executable", "param1", "param2"]
CMD ["param1", "param2"]
CMD command param1 param2
指定容器启动时默认运行的命令,在一个 Dockerfile 文件中,如果有多个 CMD
命令,只有一个最后一个会生效。
同样是可以执行命令,可能你会觉得跟上面的 RUN
指令很相似。
RUN
指令是在 构建镜像
时候执行的。CMD
指令是在每次 容器运行
的时候执行的。docker run command
命令会覆盖 CMD
的命令。ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2
这个指令与 CMD
指令类似,都是指定启动容器时要运行的命令,如果指定了 ENTRYPOINT
,则 CMD
指定的命令不会执行。
在一个 Dockerfile 文件中,如果有多个 ENTRYPOINT
命令,也只有一个最后一个会生效。
docker run command
命令会覆盖 CMD
的命令,不会覆盖 ENTRYPOINT
的命令。docker run
命令中指定的任何参数都会被当做参数传递给 ENTRYPOINT
RUN
指令是在镜像构建时运行,而后两个是在容器启动时执行。CMD
指令设置的命令是容器启动时默认运行的命令,如果 docker run
没有指定任何的命令,并且 Dockerfile 中没有指定 ENTRYPOINT
,那容器启动的时候就会执行 CMD
指定的命令。有点类似代码中的缺省参数ENTRYPOINT
指令,则优先使用。并且可以通过 docker run
给该指令设置的命令传参。CMD
有点类似代码中的缺省参数。USER <user>[:<group>]
USER <UID>[:<GID>]
用于指定运行镜像所使用的用户。
ARG <name>[=<default value>]
指定在镜像构建时可传递的变量,定义的变量可以通过 docker build --build-arg=
的方式在构建时设置。
ONBUILD [INSTRUCTION]
当所构建的镜像被当做其他镜像的基础镜像时,ONBUILD
指定的命令会被触发。
STOPSIGNAL signal
设置当容器停止时所要发送的系统调用信号
HEALTHCHECK [OPTIONS] CMD command # 在容器内运行运行命令检测容器的运行情况)
HEALTHCHECK NONE # 禁止从父镜像继承检查
该指令可以告诉 Docker
怎么去检测一个容器的运行状况。
SHELL ["executable","parameters"]。
用于设置执行命令所使用的默认的 shell
类型!该指令在 Windows
操作系统下比较有用,因为 Windows
下通常会有 cmd
和 powershell
两种 shell
,甚至还有 sh
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。