CentOS 上 overlay(OverlayFS)配置失败通常不是单一原因,而是和 内核版本、存储驱动、文件系统、Docker/容器运行时配置或 SELinux 有关。下面按常见原因 → 排查方法 → 解决办法说明。
OverlayFS 需要:
❌ 老内核会直接失败:
overlay: filesystem not supported
✅ 检查:
uname -r
✅ 解决:
yum update kernel -y
reboot
OverlayFS 不支持:
支持较好:
✅ 检查:
df -T /var/lib/docker
✅ 解决:
Docker 默认应使用:
storage-driver = overlay2
❌ 错误配置示例:
{
"storage-driver": "overlay"
}
✅ 正确(CentOS 推荐):
{
"storage-driver": "overlay2"
}
文件位置:
/etc/docker/daemon.json
重启:
systemctl restart docker
/var/lib/docker 目录有问题✅ 检查:
ls -ld /var/lib/docker
df -h
✅ 清理(⚠️会删容器):
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
CentOS 默认开启 SELinux。
表现:
permission denied
overlay mount failed
✅ 临时测试:
setenforce 0
✅ 永久(不推荐关闭):
vi /etc/selinux/config
SELINUX=permissive
✅ 正确方式: 确保 Docker 支持 SELinux:
rpm -qa | grep docker-selinux
示例:
mount -t overlay overlay -o lowerdir=/a,upperdir=/b,workdir=/c /mnt
失败常见原因:
✅ 正确结构:
mkdir -p /a /b /c /mnt
mount -t overlay overlay \
-o lowerdir=/a,upperdir=/b,workdir=/c /mnt
uname -r
cat /etc/os-release
docker info | grep -i storage
ls -l /var/lib/docker
df -T /var/lib/docker
getenforce
请把以下任意一项贴出来,我可以精准定位:
docker info 输出journalctl -u docker我可以一步步帮你修 ✅