温馨提示×

为何配置CentOS Overlay

小樊
43
2026-08-04 09:49:56
栏目: 智能运维

CentOS 上配置 Overlay(OverlayFS),通常是为了实现 容器、镜像、分层文件系统 等场景。下面从为什么要用怎么配置两个角度说明。


一、为什么要在 CentOS 上配置 Overlay?

1. 容器技术的基础(最常见原因)

OverlayFS 是 Docker、Podman、Kubernetes 默认或推荐使用的存储驱动之一。

作用:

  • 实现 镜像分层
  • 容器可写层与镜像只读层分离
  • 节省磁盘空间,提高启动速度

✅ 例如:

  • Docker 使用 overlay2 作为存储驱动
  • CentOS 7/8/Stream 都支持

2. 实现“只读 + 可写”的分层文件系统

Overlay 可以把多个目录合并成一个:

upper (可写)
lower (只读)
merged (最终视图)

典型用途:

  • Live CD / Live OS
  • 系统只读 + 用户可写
  • 软件环境隔离

3. 轻量级文件系统,性能优于 AUFS

相比 AUFS:

  • 内核原生支持
  • 性能更好
  • 代码更简单

4. CentOS 的场景需求

常见使用场景:

  • 构建 Docker / Podman 环境
  • 构建容器镜像
  • 云服务器、CI/CD 环境
  • 系统恢复、只读根文件系统

二、CentOS 中 Overlay 的类型

类型 说明
overlay 早期版本
overlay2 推荐,Docker 默认
overlayfs 内核模块名称

优先使用 overlay2


三、CentOS 配置 Overlay 的前提条件

1. 内核支持

检查是否支持 OverlayFS:

lsmod | grep overlay

或:

modprobe overlay

CentOS 7+ 默认支持。


2. 文件系统要求(Docker 场景)

如果使用 Docker:

  • 推荐文件系统:
    • xfs
    • ext4
  • 不推荐:
    • btrfs(除非你明确需要)

如果是 xfs,需要启用 d_type

xfs_info /

看到:

ftype=1

如果是 ftype=0,Docker 不建议使用 overlay2。


四、CentOS 配置 Overlay(示例)

示例 1:手动挂载 Overlay(非 Docker)

mkdir -p /mnt/overlay/{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

示例 2:Docker 使用 Overlay2(最常见)

1️⃣ 查看当前存储驱动

docker info | grep -i storage

2️⃣ 配置 Docker(如未使用 overlay2)

编辑:

vim /etc/docker/daemon.json

内容:

{
  "storage-driver": "overlay2"
}

3️⃣ 重启 Docker

systemctl restart docker

五、常见问题

❌ Docker 启动失败

可能原因:

  • /var/lib/docker 所在文件系统不支持 d_type
  • SELinux 未配置

临时关闭 SELinux 测试:

setenforce 0

❌ 内核太旧

CentOS 6 不支持 OverlayFS(不建议再使用)

✅ 推荐:

  • CentOS 7.4+
  • CentOS 8 / Stream

六、总结一句话

在 CentOS 上配置 Overlay,主要是为了支持容器技术(Docker/Podman),实现高效的分层文件系统,提升性能和资源利用率。


如果你愿意,可以告诉我:

  • ✅ 是 Docker / Podman / Kubernetes 场景?
  • ✅ CentOS 7 还是 8 / Stream?
  • ✅ 是否遇到具体报错?

我可以更针对性地帮你分析。

0