Linux 的 overlay(通常指 OverlayFS)是一种 联合文件系统(union filesystem),它的核心作用是:
把多个目录(层)合并成一个统一的目录视图,并且支持写时复制(copy-on-write)。
下面从用途、原理、典型场景和示例来说明。
OverlayFS 可以把 多个只读目录 和 一个可写目录 合并在一起,对外看起来像一个完整的文件系统。
例如:
✅ 好处:
Docker 镜像和容器大量使用 OverlayFS:
镜像层1
镜像层2
镜像层3
容器可写层 ← 容器运行时的修改
✅ 优点:
例如:
/etc、/var常用于:
upperdir → 可写层
lowerdir → 只读层(可以多层)
workdir → 临时工作目录(必须为空)
merged → 挂载后的统一视图
# 创建目录
mkdir -p lower upper work merged
# 在 lower 中放一个文件
echo "hello from lower" > lower/file.txt
# 挂载 overlay
mount -t overlay overlay \
-o lowerdir=lower,upperdir=upper,workdir=work \
merged
# 查看
cat merged/file.txt
修改 merged/file.txt 后:
lower/file.txt 不变upper/Linux Overlay(OverlayFS)用于把多个目录“叠”在一起,实现只读共享 + 可写隔离,是 Docker 和现代容器技术的基石之一。
如果你愿意,我也可以: