在 CentOS 上设置 Overlay(OverlayFS),通常用于 Docker 存储驱动、只读根文件系统 + 可写层、或 容器/沙箱环境。下面按常见场景说明。
CentOS 7+ 默认内核已支持。
lsmod | grep overlay
如果没有加载:
modprobe overlay
查看内核版本(建议 ≥ 3.10):
uname -r
mkdir -p /mnt/overlay/{lower,upper,work,merged}
说明:
lower:只读层(可多个)upper:可写层work:工作目录(必须为空)merged:最终挂载点mount -t overlay overlay \
-o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work \
/mnt/overlay/merged
mount | grep overlay
df -hT
编辑 /etc/fstab:
overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0
测试:
mount -a
docker info | grep -i storage
编辑 /etc/docker/daemon.json:
{
"storage-driver": "overlay2"
}
重启 Docker:
systemctl restart docker
✅ overlay2 是 CentOS 7/8 官方推荐
mount -t overlay overlay \
-o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work \
/merged
⚠️ 注意:
workdir or upperdir not emptyrm -rf /mnt/overlay/work/*
rm -rf /mnt/overlay/upper/*
临时关闭测试:
setenforce 0
或添加 SELinux 上下文:
chcon -Rt svirt_sandbox_file_t /mnt/overlay
| 场景 | 是否推荐 |
|---|---|
| Docker 存储 | ✅ overlay2 |
| 只读系统 + 可写 | ✅ |
| 生产环境 | ✅ |
| 老内核(<3.10) | ❌ |
如果你能说明 具体用途(Docker / 根文件系统 / 容器 / 沙箱 / 升级系统),我可以给你 更精确的配置方案。