Linux Overlay(通常指 OverlayFS)之所以重要,是因为它用极低的成本实现了“分层”和“写时复制(Copy-on-Write)”能力,这是现代容器、系统升级、热修复等技术的基石之一。
可以从几个层面理解它的重要性:
OverlayFS 是 Linux 的一种联合文件系统(Union File System),可以把多个目录(层)“叠加”在一起,形成一个统一的视图,同时只在上层写入,下层只读。
Docker、Podman、Kubernetes 都依赖 OverlayFS。
没有 OverlayFS,容器很难做到现在这样轻量。
一个镜像通常是这样构成的:
Layer N(最上层,可写)
Layer 3
Layer 2
Layer 1(基础镜像,只读)
OverlayFS 让这些层:
✅ 效果:
OverlayFS 的核心特性:
✅ 好处:
很多 Linux 发行版(如 Ubuntu Live、CoreOS、嵌入式系统)使用 OverlayFS:
只读系统镜像
+ 可写临时层
= 可运行系统
✅ 好处:
OverlayFS 是 文件系统级 的,不是块设备级:
✅ 对比:
| 技术 | 复杂度 |
|---|---|
| LVM | 高 |
| 块设备快照 | 高 |
| OverlayFS | 低 |
| 场景 | 作用 |
|---|---|
| Docker 镜像 | 分层存储与共享 |
| Kubernetes | 容器根文件系统 |
| 系统升级 | 不破坏原系统 |
| 只读根文件系统 | 嵌入式 / LiveCD |
| 沙箱 / 测试 | 临时修改不影响真实系统 |
upper/
lower/
work/
merged/
mount -t overlay overlay \
-o lowerdir=lower,upperdir=upper,workdir=work \
merged
lower:只读upper:可写merged:你看到的最终视图修改 merged 中的文件:
upperlower 复制后写入 upperOverlayFS 是 Linux 实现“轻量、分层、可回滚、可共享”的文件系统基础,没有它,现代容器和云原生体系几乎无法以现在的方式存在。
如果你愿意,我也可以: