编写 Dockerfile 的最佳实践概述

本主题涵盖构建高效映像的推荐最佳实践和方法。它 为您的 Dockerfile 提供了一般指南,并 为每个 Dockerfile 指令提供了更具体的最佳实践

什么是 Dockerfile?

Docker 通过读取 Dockerfile 中的指令来自动构建镜像,Dockerfile 是一个文本文件,其中按顺序包含构建给定镜像所需的所有命令。 Dockerfile 遵循特定的格式和指令集,您可以在 Dockerfile 参考中找到这些指令。

Docker 镜像由只读层组成,每个层代表一条 Dockerfile 指令。这些层是堆叠在一起的,每一层都是与前一层的变化的增量。

# syntax=docker/dockerfile:1

FROM ubuntu:22.04
COPY . /app
RUN make /app
CMD python /app/app.py

在上面的示例中,每条指令创建一层:

  • FROM从 Docker 镜像创建一个层ubuntu:22.04
  • COPY从 Docker 客户端的当前目录添加文件。
  • RUN使用 构建您的应用程序make
  • CMD指定要在容器内运行的命令。

当您运行图像并生成容器时,您将在底层层之上添加一个新的可写层,也称为容器层。对正在运行的容器所做的所有更改,例如写入新文件、修改现有文件和删除文件,都会写入此可写容器层。

其他资源

Docker 官方镜像示例

这些官方镜像具有示例性的 Dockerfile: