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
类似
ADD,COPY用于复制文件和目录,但不支持远程URL和自动解压。
COPY requirements.txt /app/
ENTRYPOINT
可配置容器启动时执行的命令,与
CMD配置使用能设置默认参数。
ENTRYPOINT ["python3", "/app/main.py"]
VOLUME
用于创建挂载点,可将主机目录或数据卷挂载到容器中。
VOLUME ["/data"]
USER
指定运行后续命令以及容器启动时的用户。
USER appuser
WORKDIR
用于设定后续
RUN、CMD、ENTRYPOINT、COPY和ADD指令的工作目录。
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"]