强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

Dockerfile 写作精讲

Dockerfile 写作精讲

一套系统化的 Dockerfile 学习路径——从第一条指令到生产级镜像的完整旅程。

为什么写这套教程

Dockerfile 看似简单,几十行文本就能构建一个镜像。但写对容易,写好很难:基础镜像的选择、层缓存的利用、安全上下文的配置、多阶段构建的编排……每一个决策都直接影响镜像的体积、构建速度、安全性和可维护性。

本教程共 18 章,按照「基础指令 → 高级特性 → 工程实践」的路径编排,适合从入门到进阶的全阶段读者。

章节目录

章节 标题 核心内容
01 Dockerfile 概述 构建上下文、层缓存机制、基本结构
02 基础镜像选择 Alpine / Distroless / Scratch / 多架构镜像
03 COPY 与 ADD 指令对比、多阶段复制、.dockerignore、缓存失效
04 RUN 指令 Shell 与 Exec 形式、合并 RUN、清理缓存
05 ENV 与 ARG 环境变量、构建参数、作用域差异、秘密变量处理
06 CMD 与 ENTRYPOINT 默认命令、入口点、信号处理、SHELL 指令
07 EXPOSE 与端口 端口声明、映射、多端口、健康检查
08 USER 与权限 非 root 运行、权限管理、文件所有权
09 多阶段构建 分阶段编排、构建缓存、最小化镜像
10 缓存策略 缓存挂载、BuildKit 缓存、缓存失效分析
11 BuildKit 高级特性 前端语法、Secrets、SSH 挂载、缓存导入导出
12 镜像安全 Trivy 扫描、Cosign 签名、SBOM 生成
13 语言最佳实践 Node.js / Go / Java / Python / Rust
14 常见构建模式 Builder 模式、Rootless 模式、Init 系统
15 镜像瘦身 层合并、UPX 压缩、符号剥离、体积分析
16 测试与验证 Hadolint、容器内测试、CI 集成
17 Docker Compose 集成 Compose Build、多服务构建、环境变量
18 生产最佳实践 CI/CD 集成、安全基线、维护策略

阅读建议

  • 初学者:按顺序阅读 01-08 章,掌握每条指令的用法和注意事项。
  • 有经验者:直接跳到 09-12 章,深入多阶段构建与 BuildKit 特性。
  • 运维 / SRE:重点关注 12(安全)、15(优化)、18(生产实践)。
  • 各语言开发者:第 13 章提供 Node / Go / Java / Python / Rust 的专项模板。

环境要求

工具 最低版本 推荐版本
Docker Engine 20.10+ 24.0+
BuildKit 自带(Docker 23+) 最新
Docker Compose v2.0+ v2.24+

所有代码示例均在 Ubuntu 22.04 + Docker 24.0 环境下验证通过。