CentOS 上 overlay(通常是 Docker 的 overlay2 存储驱动,或 Kubernetes/容器用的 overlay 文件系统)配置失败,原因比较集中,可以按下面思路一步步排查和解决。
常见场景:
下面以 Docker overlay2 为主说明(最常见)。
overlay 需要:ext4 / xfs(带 ftype=1)
检查:
df -T /var/lib/docker
如果是 xfs:
xfs_info /var/lib/docker | grep ftype
ftype=1 ✅ 正常ftype=0 ❌ 不支持 overlay2✅ 解决:
-n ftype=1)CentOS 7 老内核容易出问题
查看:
uname -r
建议:
✅ 解决:
yum update kernel
reboot
错误示例:
permission denied
overlay: failed to mount
✅ 临时关闭测试:
setenforce 0
✅ 永久解决(二选一):
vim /etc/sysconfig/docker
# 添加
OPTIONS="--selinux-enabled=false"
查看当前驱动:
docker info | grep Storage
如果报错或不是 overlay2:
编辑:
vim /etc/docker/daemon.json
内容:
{
"storage-driver": "overlay2"
}
然后:
systemctl restart docker
常见于异常断电、磁盘满
✅ 解决(会清空镜像):
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
⚠️ 生产环境慎用
df -h
df -i
如果 100%:
docker system prune -a
# 查看 docker 错误
journalctl -u docker -xe
# 查看内核支持
lsmod | grep overlay
# 手动测试 overlay
mkdir -p /tmp/ov/{lower,upper,work,merged}
mount -t overlay overlay -o lowerdir=/tmp/ov/lower,upperdir=/tmp/ov/upper,workdir=/tmp/ov/work /tmp/ov/merged
你可以贴出:
cat /etc/redhat-release)docker version)我可以直接告诉你具体哪一步错了、怎么改。