Docker 体系化完整知识框架(从构建到运行到编排)

Docker 体系化完整知识框架(从构建到运行到编排)

Dockerfile 定义分层构建规则 + 构建缓存优化打包速度 → 生成多层只读镜像(镜像层) → pull 分层落地磁盘、共享复用 → docker run 时通过联合文件系统动态堆叠图层 + 新增读写层形成容器 → docker compose 统一编排多容器协同运行

所有 Docker 行为,全部逃不出这条链路。


一、构建阶段:Dockerfile(镜像的源头)

1.1 核心本质

Dockerfile 每一条 改变文件 的指令(FROM / COPY / RUN / ADD)都会生成一层只读镜像层

无文件变更指令(WORKDIR / ENV / CMD / EXPOSE)不产生图层,只修改镜像元数据。

1.2 构建缓存机制(核心优化)

Docker 构建是从上到下逐条校验缓存

  • 如果当前指令 & 对应文件哈希没变 → 复用缓存层
  • 一旦某一层变更 → 当前层 + 后续所有上层全部失效重构建

✅ 企业标准顺序(为了缓存最大化):

复制依赖文件 => 安装依赖 => 复制业务代码

1.3 多阶段构建(生产必备)

多阶段 = 多个 FROM = 多个独立镜像文件系统

  • 阶段1(builder):带完整环境、源码、打包工具,用于编译构建(npm run build)
  • 阶段2(最终镜像):只复制编译产物,丢弃源码、工具、依赖、缓存

收益三要素:镜像极小、无源码泄露、攻击面极低


二、产物阶段:镜像(Image)= 多层只读文件模板

2.1 镜像本质

镜像 = 一堆有序、只读、分层文件的集合

镜像本身静态、不运行、无进程,只是磁盘上的文件模板。

2.2 镜像分层存储机制(你最容易混淆的点)

  • 构建时:生成一层层独立文件层(分散存放)
  • 磁盘存储:相同哈希图层全局共享,多镜像共用底层,省空间
  • pull拉取时:分层按需下载,本地已有图层直接跳过,只拉缺失层

镜像阶段只是"存储分层",不会堆叠,堆叠只在容器启动时发生。


三、运行阶段:docker run 容器启动(核心底层技术)

3.1 容器启动真正做的事(必考底层)

执行 docker run 瞬间触发两大核心技术:

1)OverlayFS 联合文件系统(堆叠)

把镜像所有只读层按顺序从下到上完整堆叠,合成一个完整文件系统视图。

2)自动新增「容器读写层」

在所有镜像层最顶部生成一层:

  • 可读写、容器独占、临时存在
  • 所有容器内修改只写这一层(CoW写时复制)
  • 删除容器立刻销毁,镜像层纹丝不动

3.2 镜像 vs 容器 终极区别

  • 镜像:只有只读层、静态模板、永久存在
  • 容器:只读镜像层 + 独立读写层、动态进程、临时存在

四、编排阶段:Docker Compose(多容器生命周期管理)

单个 docker run 只能跑单个容器;

Compose 是批量管理多个关联容器的工具

4.1 核心能力

  • 统一配置:镜像、端口、目录、网络、启动顺序、环境变量
  • 一键启停整套微服务
  • 自动创建容器内网,服务名互通
  • 支持构建目标 target(开发/生产镜像切换)

4.2 体系位置

Dockerfile构建镜像 → 镜像run成容器 → compose统一编排多容器

这就是本地开发、测试、上线的完整流水线。


五、链路闭环总结

1. 编写 Dockerfile:定义分层规则、利用构建缓存、多阶段剥离源码与工具

2. docker build:生成多层只读镜像,每层对应文件变更记录

3. docker pull(可选) :分层落地磁盘,复用本地图层,节省空间带宽

4. docker run:OverlayFS 堆叠所有镜像层 + 新增独立读写层,形成运行容器

5. docker compose:编排前端、后端、数据库、中间件多容器协同工作


六、总结

  1. 镜像层只读,容器读写层临时,删容器不影响镜像。
  2. 构建缓存从上到下失效,所以依赖和代码要分层写。
  3. 多阶段构建隔离构建环境与运行环境,保证生产镜像干净安全。
  4. 镜像只是分层文件,容器启动才会堆叠文件系统
  5. Compose 只负责编排容器,不构建镜像,镜像由 Dockerfile 生成。
相关推荐
张忠琳1 天前
【NPU】Ascend Docker Runtime v26.0.1 之二 runtime/process/process.go — 超深度逐行分析
云原生·容器·架构·kubernetes·npu·docker-runtime
联众合科技1 天前
超融合如何助力数据中心现代化转型?从架构重构到落地避坑的完整指南
重构·架构
香菜TTT1 天前
Kafka_深度解析_从架构原理到生产实践
分布式·架构·kafka·linq
陳陈陳1 天前
🚀 前端流式输出革命:SSE + BFF 架构从零到一实战指南
vue.js·架构·node.js
张永伟营销1 天前
从SEO到GEO:技术人视角下的生成式引擎优化架构与实践
搜索引擎·ai·架构
小柒儿3361 天前
AI原生架构:企业IT从“业务数字化”到“AI原生重构”
重构·架构·ai-native
千维百策6661 天前
云服务性能下降事件分析:高可用架构与可用区疏散实践
架构
EnCi Zheng1 天前
AI Agent(AI智能体) 记忆管理系统设计 — 从向量库边界到生产级 Memory(记忆) 架构
人工智能·架构
纵有疾風起1 天前
从OSI到TCP/IP——分层架构的思想根源与模型之争
tcp/ip·计算机网络·架构·osi·408·体系结构·分层