温馨提示×

CentOS Overlay怎样设置

小樊
63
2026-08-04 09:52:53
栏目: 智能运维

CentOS 上设置 Overlay(OverlayFS),通常用于 Docker 存储驱动只读根文件系统 + 可写层、或 容器/沙箱环境。下面按常见场景说明。


一、确认内核支持 OverlayFS

CentOS 7+ 默认内核已支持。

lsmod | grep overlay

如果没有加载:

modprobe overlay

查看内核版本(建议 ≥ 3.10):

uname -r

二、手动挂载 Overlay(最基础方式)

1️⃣ 创建目录结构

mkdir -p /mnt/overlay/{lower,upper,work,merged}

说明:

  • lower:只读层(可多个)
  • upper:可写层
  • work:工作目录(必须为空)
  • merged:最终挂载点

2️⃣ 挂载 OverlayFS

mount -t overlay overlay \
-o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work \
/mnt/overlay/merged

3️⃣ 验证

mount | grep overlay
df -hT

三、设置开机自动挂载(fstab)

编辑 /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 使用 Overlay(最常见)

1️⃣ 查看当前存储驱动

docker info | grep -i storage

2️⃣ 设置 Docker 使用 overlay2(推荐)

编辑 /etc/docker/daemon.json

{
  "storage-driver": "overlay2"
}

重启 Docker:

systemctl restart docker

overlay2 是 CentOS 7/8 官方推荐


五、多 lowerdir(多层叠加)

mount -t overlay overlay \
-o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work \
/merged

⚠️ 注意:

  • lowerdir 顺序是 优先级从高到低
  • 层越多性能越差

六、常见问题

❌ 报错:workdir or upperdir not empty

rm -rf /mnt/overlay/work/*
rm -rf /mnt/overlay/upper/*

❌ SELinux 问题

临时关闭测试:

setenforce 0

或添加 SELinux 上下文:

chcon -Rt svirt_sandbox_file_t /mnt/overlay

七、适用场景总结

场景 是否推荐
Docker 存储 ✅ overlay2
只读系统 + 可写
生产环境
老内核(<3.10)

如果你能说明 具体用途(Docker / 根文件系统 / 容器 / 沙箱 / 升级系统),我可以给你 更精确的配置方案

0