Linux 使用 Overlay(OverlayFS) 主要是为了解决文件系统层叠、资源共享、快速构建与隔离等问题,尤其在容器、Live CD、系统更新等场景中非常有用。下面从原理和典型用途解释“为什么 Linux 用 overlay”。
OverlayFS 是一种联合挂载(union mount)文件系统:
upperdir (可写)
lowerdir (只读)
↓
merged (用户看到)
以 Docker 为例:
✅ 使用 Overlay 的好处:
例如:
base image (lower)
container A (upper)
container B (upper)
两个容器共享 base,但互不影响。
Overlay 默认是 CoW:
✅ 优势:
很多 Linux 发行版用 overlay 做:
典型场景:
你可以用 overlay 挂载根文件系统:
mount -t overlay overlay \
-o lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work \
/merged
好处:
过去有:
问题:
OverlayFS:
✅ 已合入 Linux 内核
✅ 稳定
✅ 性能好
| 场景 | 是否用 overlay |
|---|---|
| Docker / Kubernetes | ✅ |
| Podman | ✅ |
| Live CD | ✅ |
| 系统只读保护 | ✅ |
| 多环境共享基础系统 | ✅ |
| 普通日常桌面 | ❌(一般不用) |
Linux 用 Overlay,是因为它能在“不复制、不破坏、可隔离”的前提下,高效共享文件系统。
如果你愿意,我也可以: