温馨提示×

如何配置CentOS Overlay

小樊
51
2026-08-19 10:56:09
栏目: 智能运维

在 CentOS 上配置 Overlay(OverlayFS),通常用于 Docker、容器存储、LiveCD、只读根文件系统 等场景。下面按常见使用方式给你一个完整说明。


一、OverlayFS 简介

OverlayFS 是一种联合文件系统(union filesystem),可以把多个目录合并成一个,常用于:

  • Docker 存储驱动(overlay2)
  • 容器根文件系统
  • 只读系统 + 可写层

核心概念:

目录 作用
lowerdir 只读层(一个或多个)
upperdir 可写层
workdir 工作目录(必须为空)
merged 最终挂载点

二、确认系统支持 OverlayFS

1️⃣ 内核版本要求

uname -r
  • CentOS 7:3.10+(支持 overlay,推荐 overlay2)
  • CentOS 8 / Stream:完全支持

2️⃣ 检查内核模块

lsmod | grep overlay

如果没有输出,手动加载:

modprobe overlay

设置开机自动加载:

echo "overlay" >> /etc/modules-load.d/overlay.conf

三、手动挂载 OverlayFS(示例)

1️⃣ 创建目录结构

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

2️⃣ 准备只读层(lowerdir)

echo "lower" > /mnt/overlay/lower/test.txt

3️⃣ 挂载 OverlayFS

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

4️⃣ 验证

cat /mnt/overlay/merged/test.txt
echo "write test" > /mnt/overlay/merged/test.txt
  • lower/test.txt 不变
  • 修改内容在 upper

四、开机自动挂载(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",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

重启 Docker:

systemctl restart docker

overlay2 是 CentOS 上 Docker 的推荐存储驱动


六、CentOS 7 常见问题

❗ SELinux 影响

如果挂载失败,可临时测试:

setenforce 0

永久关闭(不推荐生产):

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

或配置 SELinux 策略(推荐)


七、典型应用场景

场景 用法
Docker overlay2
只读系统 lower=系统目录
升级回滚 upper 作为差异层
LiveOS squashfs + overlay

八、排查命令

mount | grep overlay
lsblk
dmesg | tail

九、总结

✅ 配置 OverlayFS 的核心步骤:

  1. 确认内核支持
  2. 准备 lower / upper / work 目录
  3. 使用 mount -t overlay
  4. Docker 场景直接用 overlay2

如果你能说明 具体用途(Docker / 根目录只读 / 容器定制 / 系统升级),我可以给你更精确的配置方案。

0