理解 Linux 的 Overlay(OverlayFS),可以从“分层”“合并视图”“写时复制”这几个核心概念入手。它本质上是一种联合挂载(union mount)文件系统,常用于容器、Live CD、系统只读保护等场景。
OverlayFS 是 Linux 内核提供的一种文件系统,它能把多个目录“叠加”在一起,对外提供一个统一的目录视图:
用户对 merged 目录的操作,实际会按规则落到 upper 或 lower 上。
典型的 overlay 挂载结构:
upper/ # 可读写层
lower/ # 只读层(可以多个)
work/ # 内核内部工作目录(必须和 upper 同文件系统)
merged/ # 用户看到的统一视图
挂载命令示例:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
以 Docker 为例:
好处:
把 Overlay 想象成:
透明玻璃板(upper)盖在画(lower)上
- 你看的是“玻璃 + 画”
- 你在玻璃上涂写,画本身不变
- 擦掉玻璃上的内容,画还在
❌ overlay 是“备份工具”
✅ 它是“视图层叠机制”
❌ lower 可以写
✅ lower 必须只读
❌ upper 可以多个
✅ 只有一个 upper(lower 可多层)
如果你愿意,我也可以:
你想从哪方面再深入?