在 CentOS(以及大多数 Linux 发行版)里,Overlay 配置通常指的是 OverlayFS(Overlay 文件系统) 的配置。它的主要作用是把多个目录“叠加”在一起,形成一个联合的文件系统视图,常用于容器、打包、部署和调试场景。
下面从用途、原理、典型场景和注意事项给你讲清楚。
一句话总结:
OverlayFS 可以把多个目录合并成一个,看起来像一个目录,但底层目录互不影响。
它主要由两层(或更多层)组成:
在 CentOS 上如果你用 Docker / Podman,底层几乎都会用到 OverlayFS。
作用:
示例(Docker 背后做的事):
镜像层(只读)
↓
容器层(可写)
↓
合并视图(容器看到的 /)
✅ 好处
比如你想临时“改” /usr,但不想真的动它:
mount -t overlay overlay \
-o lowerdir=/usr,upperdir=/overlay/usr_upper,workdir=/overlay/work \
/merged/usr
这样:
/usr 原内容还在upperdir✅ 常用于:
比如:
典型特征:
Overlay 非常适合:
例如:
/opt/app-v1 (lower)
/opt/app-tmp (upper)
lsmod | grep overlay
或
modprobe overlay
CentOS 7+ 通常都支持。
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
目录说明:
| 目录 | 作用 |
|---|---|
| lowerdir | 只读基础目录 |
| upperdir | 可写层 |
| workdir | 临时工作目录 |
| /merged | 最终挂载点 |
⚠️ workdir 必须和 upperdir 在同一文件系统。
| 对比 | OverlayFS | 软链接 | 复制 |
|---|---|---|---|
| 性能 | 高 | 中 | 低 |
| 磁盘占用 | 少 | 中 | 多 |
| 修改隔离 | ✅ | ❌ | ✅ |
| 适合容器 | ✅ | ❌ | ❌ |
setenforce 0
或配置正确的 SELinux 策略。
d_type 问题(CentOS 7 常见)Docker 会报错:
overlay2 not supported
检查:
xfs_info /
解决:
mkfs.xfs -n ftype=1
workdir 不能是 lowerdir 或 upperdir 的子目录。
CentOS 的 Overlay 配置,核心价值是:在不修改原目录的前提下,提供一个可写、可还原、可叠加的文件系统视图。
如果你愿意,我可以:
你是用在 Docker、系统加固,还是别的地方?