-
FROM
基础镜像,有点java里的继承,表示当前的新镜像是基于哪个镜像的 -
MAINTAINER
镜像维护者的姓名和邮箱地址 -
RUN
容器构建时需要额外执行的命令,比如用命令安装yum -
EXPOSE
指定当前容器对外暴露的端口 -
WORKDIR
指定工作目录,可以理解成容器生成后默认会在哪个文件路径下做操作 -
ENV
设置环境变量,定义了环境变量,在后续的指令中,就可以使用这个环境变量,如果有好多指令都要用到一样的参数,那么用这个就比较好维护了 -
ARG
构建参数,与 ENV作用一样。不过在构建好的镜像内是不会存在定义的环境变量的,这点和ENV不同。 -
COPY
复制指令,从上下文目录中复制文件或者目录到容器里指定路径 -
ADD
在COPY基础上,还能做到自动处理URL和解压tar压缩包,根据是否要自动解压来选择使用COPY和ADD两种命令 -
CMD
指定一个容器启动时要运行的命令,不过如果Dockerfile中如果存在多个 CMD 指令,仅最后一个生效,同时CMD会被docker run之后的参数替换 -
ENTRYPOINT
指定一个容器启动时要运行的命令,ENTRYPOINT不会被docker run之后的参数替换,而是会做命令的追加扫描二维码关注公众号,回复: 10214899 查看本文章 -
VOLUME
定义容器数据卷,用来做数据保存和持久化工作 -
ONBUILD
子镜像构建时,会触发父镜像的ONBUILD指令执行 -
USER
用于指定执行后续命令的用户和用户组 -
HEALTHCHECK
用于指定某个程序或者指令来监控docker容器服务的运行状态
总结
可以把Dockerfile想象成docker镜像的描述文件,docker镜像就是根据这个描述文件创建出来的,可以类比成java的class文件,对照着指令说明文档,阅读的障碍会小很多,虽然可能还是不懂,但至少不会怕。