Dockerfile指令

1.基础镜像相关
FROM
说明:指定基础镜像,所有 Dockerfile 必须以这个指令开始。
示例:

FROM ubuntu:20.04
FROM python:3.9-slim

2.维护者信息
LABEL
说明:为镜像添加元数据,如作者、版本等。
示例:

LABEL maintainer="[email protected]"
LABEL version="1.0"

3.环境配置
ENV
说明:设置环境变量,可以在后续指令中使用。
示例:

ENV APP_HOME /app
ENV DEBUG_MODE true

4.文件操作
COPY
说明:将主机文件复制到镜像中。
示例:

COPY . /app
COPY requirements.txt /app/

ADD
说明:类似 COPY,但支持自动解压远程文件。
示例:

ADD https://example.com/file.tar.gz /app/

RUN
说明:在镜像中执行命令。
示例:

RUN apt-get update && apt-get install -y python3-pip
RUN pip install -r requirements.txt

5.工作目录
WORKDIR
说明:设置工作目录,后续指令默认在这个目录下执行。
示例:

WORKDIR /app

6.镜像启动配置
CMD
说明:指定容器启动时默认执行的命令。
示例:

CMD ["python", "app.py"]

ENTRYPOINT
说明:覆盖容器的入口点,与 CMD 配合使用。
示例:

ENTRYPOINT ["python"]
CMD ["app.py"]

7.端口和卷
EXPOSE
说明:声明容器运行时监听的端口。
示例:

EXPOSE 8080

VOLUME
说明:创建挂载点,用于数据持久化。
示例:

VOLUME /data

8.构建信息
ARG
说明:定义构建时的变量,仅在构建过程中有效。
示例:

ARG BUILD_VERSION=1.0

ONBUILD
说明:设置镜像在被其他镜像作为基础镜像时自动执行的指令。
示例:

ONBUILD COPY . /app

9.用户和群组
USER
说明:指定运行容器时的用户。
示例:

USER myuser

GROUPADD
说明:创建用户组。
示例:

GROUPADD mygroup

10.清理操作
STOPSIGNAL
说明:指定停止容器的信号。
示例:

STOPSIGNAL SIGTERM

HEALTHCHECK
说明:设置容器的健康检查命令。
示例:

HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/ || exit 1

11.注释

说明:用于添加注释。
示例:

# 这是一个注释

12.SHELL
说明:指定默认的 shell 类型。
示例:

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

常用示例
以下是一个完整的 Dockerfile 示例:

# 使用官方 Python 镜像作为基础镜像
FROM python:3.9-slim

# 设置维护者信息
LABEL maintainer="[email protected]"

# 设置环境变量
ENV APP_HOME /app

# 设置工作目录
WORKDIR $APP_HOME

# 复制当前目录下的所有文件到镜像的工作目录
COPY . .

# 安装依赖
RUN pip install -r requirements.txt

# 暴露端口
EXPOSE 8080

# 设置容器启动时默认执行的命令
CMD ["python", "app.py"]

你可能感兴趣的:(docker,linux,容器,docker)