在 CentOS 中使用 overlay(通常指 OverlayFS,或 Docker 的 overlay/overlay2 存储驱动),其配置和运行依赖以下几个方面:
OverlayFS 是 Linux 内核特性,CentOS 能否使用取决于内核版本:
overlay(较老实现)overlay2lsmod | grep overlay
# 或
cat /proc/filesystems | grep overlay
若未加载:
modprobe overlay
OverlayFS 对下层(lower)和上层(upper)目录有要求:
ext4xfs(需开启 ftype=1)xfs_info / | grep ftype
ftype=1 ✅ 支持 overlay2ftype=0 ❌ Docker overlay2 无法使用若 ftype=0,只能重做文件系统:
mkfs.xfs -n ftype=1 /dev/sdX
util-linux
提供 mount 对 overlay 的支持。
依赖:
docker-ce
containerd
并确保:
/etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
CentOS 默认开启 SELinux:
setsebool -P container_manage_cgroup on
/etc/selinux/config
SELINUX=permissive
手动挂载 overlay 示例:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
依赖:
lowerdir:只读层upperdir:可读写层workdir:必须为空,且与 upperdir 同文件系统| 依赖项 | 说明 |
|---|---|
| 内核 ≥ 3.10 | overlay 基础 |
| overlay 模块 | modprobe overlay |
| ext4 / xfs(ftype=1) | 文件系统支持 |
| util-linux | mount 支持 |
| SELinux 配置 | 避免权限问题 |
| Docker(可选) | overlay2 驱动 |
如果你是 Docker overlay2、手工 overlay 挂载 或 Kubernetes 存储 场景,我可以给你更具体的配置示例。