跳到主要内容

Dockerfile最佳实践

Dockerfile 最佳实践

  1. 使用多阶段构建:减少最终镜像的大小,只包含运行所需的文件。

    FROM python:3.9 AS builder
    COPY . .
    RUN pip install --user -r requirements.txt

    FROM python:3.9-slim
    COPY --from=builder /root/.local /root/.local
    COPY . .
    CMD ["python", "app.py"]
  2. 减少层数:合并多个 RUN 指令,减少镜像层数。

    RUN apt-get update && \
    apt-get install -y git && \
    rm -rf /var/lib/apt/lists/*
  3. 使用 .dockerignore 文件:避免将不必要的文件复制到镜像中。

  4. 指定明确的版本:避免使用 latest 标签,确保构建的可重复性。

    FROM python:3.9-slim
  5. 最小化镜像大小:使用轻量级的基础镜像(如 alpineslim 版本)。

  6. 使用健康检查:确保容器运行正常。

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

Dockerfile 调试技巧

  • 使用 docker build --no-cache 强制重新构建,忽略缓存。
  • 使用 docker history <image> 查看镜像的构建历史。
  • 使用 docker run -it <image> /bin/sh 进入容器内部调试。