温馨提示×

centos overlay报错怎么解决

小樊
72
2026-10-17 20:24:39
栏目: 智能运维

“CentOS 上 overlay 报错”通常指 Docker 使用 overlay/overlay2 存储驱动 或 overlayfs 挂载失败。下面按常见场景给你排查与解决方法。


一、Docker overlay / overlay2 报错

1. 查看报错信息

journalctl -u docker
# 或
docker info

常见报错:

  • overlay2: the backing xfs filesystem is formatted without d_type support
  • failed to mount overlay: invalid argument
  • storage-driver overlay2 not supported

2. 内核版本过低(最常见)

overlay2 要求:

  • CentOS 7:内核 ≥ 3.10.0-514
  • CentOS 8:默认支持

查看内核:

uname -r

✅ 解决:

yum update -y
reboot

3. XFS 没有 d_type 支持(重点)

CentOS 7 + XFS 常见坑。

检查:

xfs_info / | grep ftype
  • ftype=1 ✅ 正常
  • ftype=0 ❌ 不支持 overlay2

✅ 解决方式(只能重做文件系统):

mkfs.xfs -n ftype=1 /dev/sdX

⚠️ 会清空数据,务必备份


4. 手动指定存储驱动

编辑:

vim /etc/docker/daemon.json

示例(推荐):

{
  "storage-driver": "overlay2"
}

重启:

systemctl restart docker

5. SELinux 导致 overlay 挂载失败

报错示例:

permission denied

临时关闭测试:

setenforce 0

永久(不推荐生产随便关):

sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

二、overlayfs 手动挂载报错

常见命令错误

mount -t overlay overlay \
  -o lowerdir=/a,upperdir=/b,workdir=/c \
  /mnt

要求:

  • workdir 必须为空
  • upperdir 和 workdir 同一文件系统
  • 目录必须存在

✅ 正确示例:

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

三、容器启动时报 overlay 错误

通常是:

  • /var/lib/docker 磁盘满
  • inode 耗尽

检查:

df -h
df -i

清理:

docker system prune -a

四、快速自检清单 ✅

  • [ ] 内核 ≥ 3.10.0-514
  • [ ] XFS ftype=1
  • [ ] /var/lib/docker 空间正常
  • [ ] SELinux 不拦截
  • [ ] daemon.json 配置正确

如果你能贴出 具体报错日志(docker / mount / dmesg),我可以直接帮你精准定位。

0 踩