Dockerfile命令说明

FROM
      指定创建镜像的基础镜像
      任何Dockerfile中的第一条非注释指令必须为FROM指令,可以有多个FROM指令创建多个镜像(每个镜像一次)

MAINTAINER
      指定镜像制作者信息

RUN
      运行执行命令
      格式:
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RUN<command> 使用shell终端运行
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RUN ["executable", "param1", "param2"] 解析为json数组并使用exec运行,不会启动shell环境

CMD
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;指定容器启动时默认执行的命令
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会被执行
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;用于启动容器手动指定了运行命令,会覆盖Dockerfile中CMD指定的命令
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;格式:
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMD ["executable", "param1", "param2"] exec执行(推荐)
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMD command param1 param2 shell中执行
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMD ["param1", "param2"] 提供给ENTRYPOINT的默认参数

LABEL
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;用于指定生成镜像的元数据标签信息
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;格式:LABEL <key>=<value> ...

EXPOSE
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;声明容器内服务监听端口

ENV
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;为docker容器设置环境变量
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;可使用docker inspect命令查看,同时可使用docker run --env <key>=<value>修改环境变量

ADD
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;将源<src>路径下的内容复制到容器中<dest>路径下
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<src>可以是Dockerfile所在目录的相对路径,也可以是url,还可以是tar文件(tar文件会自动解压到<dest>路径下)
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<dest>可以是镜像内的绝对路径,或者相对于工作目录(WORKDIR)的相对路径

COPY
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;将源<src>路径下的内容复制到容器中<dest>路径下(使用本地目录作为源目录,推荐使用COPY)


ENTRYPOINT
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;指定镜像的默认入口命令
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;只能有一个ENTRYPOINT命令,有多个只有最后一个有效
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;运行是可以被-- entrypoint参数覆盖掉
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;格式:
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENTRYPOINT ["executable", "param1", "param2"] exec执行
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENTRYPOINT command param1 param2 shell中执行

VOLUME
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;创建数据卷挂载点

USER
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;指定容器运行用户

WORKDIR
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;为后续的RUN、CMD和ENTRYPOINT指令配置工作目录

ARG
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;指定镜像内使用的参数

ONBUILD
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;配置作为其他镜像的基础镜像时需要执行的创建操作指令

文章来源:

Author:LaravelShao
link:https://my.oschina.net/LaravelShao/blog/1795697