Dockerfile命令说明
FROM
指定创建镜像的基础镜像
任何Dockerfile中的第一条非注释指令必须为FROM指令,可以有多个FROM指令创建多个镜像(每个镜像一次)
MAINTAINER
指定镜像制作者信息
RUN
运行执行命令
格式:
RUN<command> 使用shell终端运行
RUN ["executable", "param1", "param2"] 解析为json数组并使用exec运行,不会启动shell环境
CMD
指定容器启动时默认执行的命令
每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会被执行
用于启动容器手动指定了运行命令,会覆盖Dockerfile中CMD指定的命令
格式:
CMD ["executable", "param1", "param2"] exec执行(推荐)
CMD command param1 param2 shell中执行
CMD ["param1", "param2"] 提供给ENTRYPOINT的默认参数
LABEL
用于指定生成镜像的元数据标签信息
格式:LABEL <key>=<value> ...
EXPOSE
声明容器内服务监听端口
ENV
为docker容器设置环境变量
可使用docker inspect命令查看,同时可使用docker run --env <key>=<value>修改环境变量
ADD
将源<src>路径下的内容复制到容器中<dest>路径下
<src>可以是Dockerfile所在目录的相对路径,也可以是url,还可以是tar文件(tar文件会自动解压到<dest>路径下)
<dest>可以是镜像内的绝对路径,或者相对于工作目录(WORKDIR)的相对路径
COPY
将源<src>路径下的内容复制到容器中<dest>路径下(使用本地目录作为源目录,推荐使用COPY)
ENTRYPOINT
指定镜像的默认入口命令
只能有一个ENTRYPOINT命令,有多个只有最后一个有效
运行是可以被-- entrypoint参数覆盖掉
格式:
ENTRYPOINT ["executable", "param1", "param2"] exec执行
ENTRYPOINT command param1 param2 shell中执行
VOLUME
创建数据卷挂载点
USER
指定容器运行用户
WORKDIR
为后续的RUN、CMD和ENTRYPOINT指令配置工作目录
ARG
指定镜像内使用的参数
ONBUILD
配置作为其他镜像的基础镜像时需要执行的创建操作指令
文章来源:
Author:LaravelShao
link:https://my.oschina.net/LaravelShao/blog/1795697