Linux Overlay 通常指 Overlay Filesystem(OverlayFS),它是一种联合文件系统(union filesystem),可以把多个目录“叠加”在一起,形成一个统一的视图。
OverlayFS 是 Linux 内核自带的一种文件系统,用于:
把多个目录(层)合并成一个目录,看起来像一个完整的文件系统
它不会真正复制文件,而是通过“覆盖”的方式工作。
OverlayFS 至少需要两个目录:
| 名称 | 含义 |
|---|---|
| lowerdir | 只读层(一个或多个) |
| upperdir | 可写层(只有一个) |
| workdir | 工作目录(内部使用) |
| merged | 最终挂载后看到的目录 |
lowerdir (只读)
↓
upperdir (可写)
↓
merged (你看到的统一视图)
lowerdir:
upperdir:
upperdir 创建一个 whiteout 文件mkdir lower upper work merged
echo "hello" > lower/file.txt
sudo mount -t overlay overlay \
-o lowerdir=lower,upperdir=upper,workdir=work \
merged
cat merged/file.txt
# hello
echo "world" >> merged/file.txt
cat upper/file.txt
# hello
# world
✅ 不复制整个文件系统
✅ 节省磁盘空间
✅ 启动快
✅ 层级清晰
❌ 不适用于高并发写大量小文件
❌ 不支持同一目录多个可写层
❌ 某些操作(rename)有限制
❌ 需要内核 ≥ 3.18(推荐 ≥ 4.0)
| 名称 | 含义 |
|---|---|
| OverlayFS | Linux 联合文件系统 |
| overlay network | 容器网络(如 Docker overlay) |
| overlay 分区 | 非标准说法,通常指 OverlayFS |
Linux Overlay = OverlayFS,是一种把多个目录叠在一起、只复制修改部分的轻量级文件系统,广泛用于 Docker 和只读系统。
如果你是想了解 Docker overlay、k8s overlay 网络,或者 嵌入式系统 overlay,可以告诉我,我可以针对性讲。