Dockerfile 保留字

32 阅读2分钟

FROM

设定基础镜像,首个必需指令。

FROM ubuntu:20.04

RUN

在当前镜像层执行命令,常用来安装软件包。

RUN apt-get update && apt-get install -y python3

CMD

为启动的容器提供默认命令。在Dockerfile里只有一条CMD指令,若存在多条,仅最后一条会生效。

CMD ["python3", "-m", "http.server", "8000"]

LABEL

向镜像添加元数据,例如版本和维护者信息。

LABEL version="1.0" maintainer="example@domain.com"

EXPOSE

用于声明容器运行时会监听的端口。

EXPOSE 8080

ENV

可以设置环境变量,这些变量在容器运行时持续存在。

ENV APP_ENV=production

ADD

能够将文件、目录或远程URL内容复制到镜像中。具备自动解压压缩文件的功能。

ADD app.tar.gz /app/

COPY

类似ADDCOPY用于复制文件和目录,但不支持远程URL和自动解压。

COPY requirements.txt /app/

ENTRYPOINT

可配置容器启动时执行的命令,与CMD配置使用能设置默认参数。

ENTRYPOINT ["python3", "/app/main.py"]

VOLUME

用于创建挂载点,可将主机目录或数据卷挂载到容器中。

VOLUME ["/data"]

USER

指定运行后续命令以及容器启动时的用户。

USER appuser

WORKDIR

用于设定后续RUNCMDENTRYPOINTCOPYADD指令的工作目录。

WORKDIR /app

ARG

定义在构建镜像时使用的变量。

ARG BUILD_ENV=development

ONBUILD

当该镜像被用作其他镜像的基础镜像时,ONBUILD指令会触发后续构建步骤。

ONBUILD RUN pip install -r requirements.txt

STOPSIGNAL

设置发送给容器以终止它的系统调用信号。

STOPSIGNAL SIGTERM

HEALTHCHECK

指定检查容器健康状态的命令。

HEALTHCHECK --interval=5m CMD curl -f http://localhost/ ll exit 1

SHELL

为后续命令设置默认shell

SHELL ["/bin/bash", "-c"]