docker 无法启动报错:overlayfs does not support、overlayfs not found

1 报错问题

docker 无法启动,系统日志报错的关键片段如下:

bash 复制代码
... "devmapper not configured"...
..."failed to load plugin io.containerd.snapshotter.v1.overlayfs" error="/home/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs does not support d_type. If the backing filesystem is xfs, please reformat with ftype=1 to enable d_type support"...
..."snapshotter.v1.zfs must be a zfs filesystem to be used with the zfs snapshotter
snapshotter \"overlayfs\" not found: not found"...

2 报错解析

如果你的 docker 数据目录是 xfs格式分区,需要指定 ftype=1 或者 d_type=true,如果在未使用ftype=1的方式格式化的OverlayFS文件系统上使用,docker可能出现未知问题。

3 排查解决

3.1 检查你的磁盘分区格式

bash 复制代码
 df -T /home/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs
文件系统                类型     1K-块     已用      可用 已用% 挂载点
/dev/mapper/centos-home xfs  477466844 56014448 421452396   12% /home

我的 docker 数据目录在 /home/docker ,所以查看 /home/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs ,此路径也是报错信息中 提示的,你也可以直接查看 /home;

可见,我的 docker 数据目录所在磁盘分区格式就是 xfs;

3.2 检查 ftype 是否为 1

bash 复制代码
xfs_info /dev/mapper/centos-home 
meta-data=/dev/mapper/centos-home isize=256    agcount=4, agsize=29856256 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=119425024, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=58313, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

/dev/mapper/centos-home 路径就是我的 home 挂载的目录,也是 df -T 命令查看到的路径

可以看到 查到的信息中,倒数第四行 ftype=0,所以我需要将其改为 1

3.3 修改 ftype 为 1

将ftype 改为 1 ,需要格式化磁盘分区,现将 /home 目录的文件备份到其它目录一定要备份!

bash 复制代码
#备份完后,先卸载分区
umount /home
#格式化
mkfs.xfs -f -n ftype=1 /home
#格式化完成后再次挂载
mount -a

操作完成,可以重新安装 docker 进行测试。

相关推荐
honortech5 分钟前
docker 配置 MySQL 主从数据库
数据库·mysql·docker
姚永强9 分钟前
简单论坛搭建——运维方向模拟
运维
小猪咪piggy32 分钟前
【接口自动化】(2) pytest 测试框架
运维·自动化·pytest
me8321 小时前
【Linux】Docker部署Jenkins
servlet·docker·jenkins
A.A呐1 小时前
【Linux第二十五章】高级IO
linux·运维·服务器
zzzsde1 小时前
【Linux】库的制作与使用(2)ELF&&静态链接
linux·运维·服务器
艾莉丝努力练剑1 小时前
【Linux线程】Linux系统多线程(二):线程的优缺点
linux·运维·服务器·c++·学习
xmlhcxr1 小时前
kubernetes(K8s)基础配置及资源使用详解
docker·云原生·eureka·k8s
HalvmånEver1 小时前
Linux:基于TCP Socket的客户端-服务器实现的远程命令行项目
linux·运维·服务器·网络·tcp/ip
Three~stone1 小时前
Cisco Packet Tracer保姆级安装教程【附汉化教程插件】
linux·运维·服务器·网络安全