Dockerfile 是一个文本格式的配置文件,可以使用dockerfile来快速穿件已定义的镜像。

Dokerfile 主体内容分为四部分:

1 : 基础镜像信息

2 :维护者信息

3 :镜像操作指令

4 :容器运行时执行指令

指令说明:

1:配置指令

FROM:指定所创建镜像的基础镜像。必须为第一条指令

 ARG:定义创建镜像过程中使用的变量。镜像编译成功后,ARG指定的变量将不再存在

ENV:指定环境变量

什么时候用ARG,什么时候用ENV?
如果想保存为环境变量,就用ENV;如果只想在Dockerfile中临时使用,就用ARG

LABEL:为生成的镜像添加元数据标签信息

EXPOSE:声明镜像内服务监听的端口

ENTRYPOINT:

      指定镜像的默认入口命令。

      该入口命令会在启动容器时作为根命令执行,所有传入值作为该命令的参数

      只能有一条ENTRYPOINT命令

VOLUME: 创建一个数据卷挂载点

USER:指定运行容器时的用户名和UID。后续的RUN指令也会使用指定的用户身份

WORKDIR:配置工作目录,为后续的RUN,CMD,ENTRYPOINT指令配置工作目录

ONBULD:创建子镜像时指定自动执行的操作传指令

STOPSIGNAL:指定退出的信号值

HEALTHCHECK:配置启动容器如何进行监控检查

SHELL:指定默认shell类型

2: 操作指令

RUN:构建镜像时运行指定命令

CMD:启动容器时指定默认执行的命令,

        如果用户启动容器时候手动指定了运行的命令(作为run命令的参数),

        则会覆盖掉CMD指定的命令。只能有一条CMD命令

ADD:添加内容到镜像。若是tar文件,可自动解压为目录

COPY:复制内容到镜像。

实战一:Dockerfile 构建nginx+php+supervisor

实战二:Dockerfile 构建lnmp环境

实战三:Dockerfile之CMD vs ENTRYPONIT

实战四:Dockerfile常用指令使用案例