Dockerfile指令

时间:2022-07-24
本文章向大家介绍Dockerfile指令,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Dockerfile 全部指令及描述如下表:

指令

描述

语法

ARG

创建镜像过程中使用的变量,执行 docker build 时通过 build-arg 来为变量赋值,镜像编译成功后 ARG 指定变量就不存在

ARG[=]

FROM

所创建镜像的基础镜像,Dockerfile 的第一条指令必须是 FROM

FROM[AS ] 或者 FROM:[AS] 或者 FROM@[AS]

LABEL

所创建镜像的元数据标签,元数据标签可以辅助过滤出特定的镜像

LABEL==…

EXPOSE

镜像内部所监听的端口,EXPOSE 指令只起到声明作用,不会自动映射端口

EXPOSE [/…]

ENV

环境变量,在镜像生成的过程中会被 RUN 指令使用,而且在镜像启动过程中也会存在

ENV=…

ENTRYPOINT

镜像默认入口命令,会在启动容器时作为根命令执行,Dockerfile 只能有一个 ENTRYPOINT 指令

如果需要利用 exec 执行则这样编写 ENTRYPOINT[“executable”,“param1”,“param2”],如果需要在 shell 中执行,则需要这样编写 ENTRYPOINT command param11 param2

VOLUME

挂载数据卷

VOLUME["/data"]

USER

容器运行时的用户名或ID

USER daemon

WORKDIR

工作目录

WORKDIR /path/to/workdir

ONBUILD

创建子镜像时自动执行的操作指令

ONBUILD[INSTRUCTION]

STOPSIGNAL

容器退出信号

STOPSIGNAL signal

HEALTHCHECK

容器检查健康的方式

HEALTHCHECK[OPTIONS]CMD command

SHELL

指定shell类型

SHELL [“executable”,“parameters”]

RUN

运行指令

RUN

CMD

容器启动时执行的命令

CMD[“executable”,“param1”,“param2”]

ADD

添加内容到镜像

ADD

COPY

复制内容到镜像

COPY

二、创建镜像

编写 Dockerfile 文件之后,可以通过 docker [image] build 命令来创建镜像,语法命令如下:

docker build [OPTIONS] path | url | -

执行该命令后,docker 将会读取指定目录及其子目录下的 Dockerfile 文件,并将指定目录下所有数据作为上下文发送给 Docker 服务。Docker 服务在校验完 Dockerfile 文件格式后,将逐条执行文件中的命令,遇到 ADD、COPY、RUN 命令将会生成一层镜像。所有命令执行成功后,Docker 会返回镜像的唯一ID。

小提示1: 我们只需要将创建镜像所需要的文件放入 Dockerfile 中,不要将其他无关文件放入,因为上下文过大会导致创建镜像速度放缓,甚至失败。

小提示2: 如果使用的 Dockerfile 文件不再上下文路径中,可以使用 -f 参数来指定 Dockerfile 文件的路径。

小提示3: 如果要指定镜像标签,可以使用 -t 参数。

扩展: 更多 docker build 命令参数可查阅 docker 官网