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 生成。
相关推荐
hbugs0011 小时前
PNETLab vs EVE-NG Pro 流量洞察功能底层架构技术白皮书
网络·架构·eve-ng·bpf·流量洞察
冷de猫2 小时前
AI API 网关的四层架构与代码实现:以 Aegisy 为例
人工智能·架构·大模型·ai编程·ai网关·api代理·多模型接入
未来之窗软件服务3 小时前
基层诉求直达和缓解高层压力高效沟通智能建议架构—东方仙盟
架构·仙盟创梦ide·东方仙盟·阿雪技术观
记忆停留w3 小时前
Celery+Redis 分布式异步任务队列工程落地业务逻辑
大数据·人工智能·redis·分布式·缓存·架构·wpf
3630458413 小时前
KlineChartQuant Tooltip 高频交互 200FPS 性能优化完整复盘
前端·架构
大煊AI编程3 小时前
做 AI Agent 时,我终于搞懂了 Tracker 的真正作用
架构
头茬韭菜3 小时前
22个架构模式速查 + System Prompt全链路拆解
架构·prompt
禅思院4 小时前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【四】
前端·架构·前端框架
2601_959982214 小时前
从单体架构到微服务,再到云原生:现代软件架构的发展趋势
微服务·云原生·架构