Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像。
指令 | 说明 |
---|---|
ARG | 定义创建镜像过程中使用的变量 |
FROM | 指定所创建镜像的基础镜像 |
LABEL | 为 生成的镜像添加元数据标签信息 |
EXPOSE | 声明镜像内服务监听的端口 |
ENV | 指定环境变量 |
ENTRYPOINT | 指定镜像的默认入口命令 |
VOLUME | 创建一个数据卷挂载点 |
USER | 指定运行容器时的用户名或UID |
WORKDIR | 配置工作目录 |
ONBUILD | 创建子镜像时指定自动执行的操作指令 |
STOPSIGNAL | 指定退出的信号值 |
HEALTHCHECK | 配置所启动容器如何进行健康检查 |
SHELL | 指定默认shell类型 |
RUN | 运行指定命令 |
CMD | 启动容器时指定默认执行的命令 |
ADD | 添加内容到镜像 |
COPY | 复制内容到镜像 |
-
ARG
格式为ARG [=]。
当镜像编译成功后,ARG指定的变量将不再存在(ENV指定的变量将在镜像中保留。)
Docker内置了一些镜像创建变量,用户可以直接使用而无须声明,包括HTTP_PROXY,HTTPS_PROXY,FTP_PROXY,NO_PROXU。 -
FROM
格式为FROM [ AS ]或FROM : [ AS ]或FROM @ [ AS ]
任何Dockerfile中的第一条指令必须为FROM指令。并且,如果在同一个Dockerfile中创建多个竟像时,可以使用多个FROM指令。 -
LABEL
为生成的镜像添加元数据标签,这些可以辅助过滤出特定镜像。
格式为LABEL =
例如:
LABEL author=“xxxxxx” -
EXPOSE
格式为EXPOSE [/]
例如:
EXPOSE 22 80 443
该指令只是起到声明作用,并不会自动完成端口映射。 -
ENV
格式为 ENV 或 ENV =
例如:
ENV APP_VERSION=1.0.0
ENV PATH $PATH:/usr/local/bin -
ENTRYPOINT
指定镜像的默认入口命令,该入口命令会在启动容器时作为跟命令来执行,所有传入值作为该命令的参数。
支持两种格式:ENTRYPOINT [“executable”,“param1”,“param2”] :exec调用执行。
ENTRYPOINT command param1 param2: shell执行
此时,CM