Linux 的 overlay(通常指 OverlayFS)是一种联合文件系统(union filesystem),主要作用是:
把多个目录“叠加”在一起,形成一个统一的视图,而无需复制数据。
OverlayFS 可以让你“在上层看到下层的内容,同时在上层做修改,不影响下层”。
Docker、Podman、Kubernetes 等容器运行时大量使用 overlay:
例如:
镜像层(只读)
└── /bin, /lib, /usr
容器层(可写)
└── /tmp, /etc
合并后:
/bin /lib /usr /tmp /etc
好处:
常用于:
结构:
只读根文件系统
可写内存或磁盘层
合并后给用户使用
这样:
比如你想“临时改一个目录”,但不想真的改原目录:
mount -t overlay overlay \
-o lowerdir=/original,upperdir=/write,workdir=/work \
/merged
/original:原始数据(不动)/write:你的修改/merged:你看到的最终结果| 概念 | 作用 |
|---|---|
| lowerdir | 只读层(一个或多个) |
| upperdir | 可写层(只有一个) |
| workdir | 内部工作目录(必须和 upperdir 同文件系统) |
| merged | 最终挂载点(你看到的结果) |
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/mnt/overlay
因为它覆盖式叠加:
| 文件系统 | 特点 |
|---|---|
| OverlayFS | 轻量、内核原生、适合容器 |
| AUFS | 老牌 union fs,但已过时 |
| tmpfs | 纯内存文件系统 |
| btrfs | 支持快照,但复杂 |
Linux overlay(OverlayFS)是用来:
如果你愿意,我也可以:
你想从哪个角度继续?