返回目录
Dockerfile
# 指定基础镜像
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
# 维护者名
MAINTAINER <name>
# RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以在构建时指定–no-cache参数,如docker build --no-cache
# 构建镜像时执行的指令 —— shell方式
RUN <command>
# 构建镜像时执行的指令 —— exec方式
RUN ["executable", "param1", "param2"]
# 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget【COPY的功能类似ADD,但是是不会自动解压文件,也不能访问网络资源】
ADD <src>... <dest>
# 若包含空格,则
ADD ["<src>",... "<dest>"]
# 构建容器后调用,也就是在容器启动时才进行调用 —— 执行可执行文件,优先
CMD ["executable","param1","param2"]
# 构建容器后调用,也就是在容器启动时才进行调用 —— 设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数
CMD ["param1","param2"]
# 构建容器后调用,也就是在容器启动时才进行调用 —— 执行shell内部命令
CMD command param1 param2
# 配置容器,使其可执行化 —— 可执行文件, 优先
ENTRYPOINT ["executable", "param1", "param2"]
# 配置容器,使其可执行化 —— shell内部命令
ENTRYPOINT command param1 param2
# 为镜像添加元数据
LABEL <key>=<value> <key>=<value> <key>=<value> ...
# 设置环境变量 —— 一次一变量,后面所有都会被识别为value值
ENV <key> <value>
# 设置环境变量 —— 一次多变量,后面有空格则用 \ 转义,或用引号"括起来
ENV <key>=<value> ...
# 指定于外界交互的端口
EXPOSE <port> [<port>...]
# 指定持久化目录
VOLUME ["/path/to/dir1", "/path/to/dir2"]
# 指定工作目录,类似于cd命令,设置工作目录后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行
WORKDIR /path/to/workdir
# 指定传递给构建运行时的变量
ARG <name>[=<default value>]
# 设置镜像触发器【ONBUILD [INSTRUCTION]】(当所构建的镜像被用做其它镜像的基础镜像,该镜像中的触发器将会被触发)
ONBUILD ADD XXX
ONBUILD RUN XXX