温馨提示×

CentOS Overlay配置是啥

小樊
44
2026-08-04 10:10:57
栏目: 智能运维

CentOS 中的 Overlay 配置,通常指的是 OverlayFS(Overlay 文件系统) 的配置和使用。它常用于 Docker、容器、Live CD、只读根文件系统 等场景。下面从概念、用途、配置方式几个方面给你讲清楚。


一、什么是 Overlay / OverlayFS?

OverlayFS 是一种 联合文件系统(Union File System),可以把多个目录“叠加”在一起,形成一个统一的视图。

核心思想:

  • 下层(lowerdir):只读层
  • 上层(upperdir):可写层
  • 工作层(workdir):OverlayFS 内部使用
  • 合并层(merged):最终挂载后看到的目录

✅ 对 merged 目录的修改:

  • 新增文件 → 写入 upperdir
  • 修改文件 → 复制到 upperdir 再修改(写时复制)
  • 删除文件 → 在 upperdir 中创建 whiteout 文件

二、CentOS 中 Overlay 的典型用途

1️⃣ Docker 存储驱动(最常见)

Docker 默认在 CentOS 7/8 上使用:

overlay2

你看到的 /var/lib/docker/overlay2 就是 OverlayFS。

查看 Docker 存储驱动:

docker info | grep -i storage

2️⃣ 手动挂载 OverlayFS(系统级)

用于:

  • 只读根文件系统
  • 系统恢复
  • 临时修改系统文件而不破坏原系统

三、CentOS 上手动配置 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

验证:

df -h | grep overlay

3️⃣ 卸载

umount /mnt/overlay/merged

四、CentOS 7 / 8 / Stream 注意事项

✅ 内核支持

CentOS 7+ 默认支持 OverlayFS:

lsmod | grep overlay

如果没有:

modprobe overlay

✅ SELinux 问题(常见坑)

SELinux 可能导致 Overlay 挂载失败:

临时关闭测试:

setenforce 0

或添加 SELinux 策略(生产环境推荐)。


五、Docker 中的 Overlay2 配置(常见)

Docker 使用 overlay2 的条件

  • 文件系统:ext4 / xfs
  • 内核 ≥ 3.10(CentOS 7 满足)
  • 推荐 xfs 开启 d_type

检查:

xfs_info / | grep ftype

应为:

ftype=1

修改 Docker 存储驱动(不推荐随意改)

/etc/docker/daemon.json
{
  "storage-driver": "overlay2"
}

重启:

systemctl restart docker

六、常见错误

❌ workdir 不为空

workdir must be an empty directory

❌ lowerdir 不存在

mount: wrong fs type, bad option, bad superblock

❌ SELinux 阻止

查看:

journalctl -xe

七、一句话总结

CentOS 的 Overlay 配置,本质就是使用 OverlayFS 把多个目录叠加成一个,常用于 Docker 和只读/可写分离场景。


如果你是想问:

  • Docker 的 overlay2
  • 系统只读根目录
  • LiveOS / 安装盘
  • Kubernetes / Podman

可以告诉我具体场景,我可以给你更精准的配置示例。

0