第2章 镜像层:分层与联合文件系统


第 2 章 · 镜像层:分层与联合文件系统

章节摘要:镜像是 Docker 的地基层。本章把镜像拆到文件系统级别:一条 Dockerfile 如何变成十几层只读文件,overlay2 如何把多层叠成一个根目录,容器可写层为什么不该放数据,镜像又如何在仓库间增量分发、如何瘦身。学完本章,"镜像"对你不再是一张黑盒卡片,而是一叠透明的胶片。

学习目标

  1. 解释 Dockerfile 指令、镜像层、缓存三层之间的对应关系
  2. 用 overlay2 的 lowerdir/upperdir/merged 目录说清一次文件读写的完整路径
  3. 识别镜像膨胀的四类常见原因并给出对策
  4. 设计一份多阶段构建的生产级 Dockerfile

核心概念速览

镜像是一叠胶片,容器是给这叠胶片上盖的一张草稿纸。

一叠胶片:镜像的解剖面

一叠胶片:镜像的解剖面

子章节导航

2.1 镜像分层与 UnionFS 透视

用 inspect 命令与 overlay2 的真实目录结构,把"层"从概念变成可以 ls 到的目录,讲透写时复制的代价。

2.2 Dockerfile 指令与构建过程

逐条拆解常用指令的真实行为,建立"指令顺序即缓存命中顺序"的直觉,附一份可复现的构建缓存实验。

2.3 镜像仓库分发与瘦身

镜像如何以层为单位增量分发,为什么 tag 会骗人;再用多阶段构建与工具链把一个 1.2 GB 的镜像压到 80 MB。

子章节之间的逻辑关系

2.1 先看清层的物理形态,2.2 解释层是怎么被制造出来的,2.3 解决层造出来之后的两件事:怎么传、怎么减肥。

层是什么(overlay2 目录) | v 层怎么来(Dockerfile 与缓存) | v 层怎么传、怎么瘦(registry 分发与多阶段构建) ​

学本章的正确姿势

镜像层的内容偏底层,建议边读边做一个对照练习:每读完一个概念,就在终端里用对应的命令验证一次——读到层就去查 inspect 的输出,读到写时复制就去观察可写层的目录大小变化,读到缓存就连续构建两次对照 CACHED 标记。镜像层的知识特别容易"看懂了但不会用",因为它的运作过程藏在构建输出与目录结构里,命令是唯一可靠的观察窗口。三节读完,你的镜像构建时间与镜像体积应该都能明显下降,这是本章最诚实的验收标准。

前置知识与后续延伸

  • 前置:第 1 章的架构图与"容器即进程"视角
  • 为后续铺垫:镜像的可写层行为直接引出第 5 章存储层的卷方案;镜像瘦身里遇到的运行时依赖问题会在第 3 章运行时层得到解释
作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U