FROM #基础镜像
#定制镜像,需要有一个基础镜像,在这个基础镜像上进行定制。必须在第一行
#scratch所有镜像的起源镜像,是一个空镜像,可以从零开始构建属于自己的镜像
MAINTAINER #指定维护者信息,现在用LABEL代替
RUN #执行shell命令
#用来在构建镜像阶段需要执行FROM指定镜像所支持的shell命令
ADD #复制和解包文件,会自动解压
#增强版copy
WORKDIR #指定工作目录
#为后续的RUN CMD ENTERPOINT 指令配置工作目录,当容器运行后,进入容器内WORKDIR指定的默认目录
VOLUME #匿名卷
#在容器中创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等,默认会将宿主机上的目录挂载至VOLUME指定的容器目录
EXPOSE #暴露端口
#指定服务端的容器需要对外暴露(监听)的端口号,以实现容器与外部的通信
#即使没有EXPOSE端口指令,也可以通过docker run -p临时暴露容器内程序真正监听的端口,也可以-P真正暴露
CMD #容器启动命令
COPY #复制文本
#复制本地宿主机的 到容器中的
ENV #设置环境变量
#定义环境变量和值,会被后续指令(ENV,ADD,COPY,RUN等)通过$KEY或${KEY}引用,并在容器运行时保持
LABEL #指定镜像元数据,一些作者信息,系统版本信息等等
STOPSIGNAL
USER #指定当前用户
#指定运行容器的用户名或UID,在后续dockerfile中的RUN CMD 和ENTERPOINT指令时使用此用户
ENTERPOINT #入口点
#类似于CMD,配置容器启动后执行的命令及参数
ARG #构建参数
#在build阶段指定变量和ENV不同的是,容器运行时不存在这些环境变量
#如果和ENV同名,ENV覆盖ARG变量
HEALTHCHECK #健康检查