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 进行测试。

相关推荐
刘若水1 小时前
Linux: 进程信号初识
linux·运维·服务器
小刘爱喇石( ˝ᗢ̈˝ )1 小时前
玛卡巴卡的k8s知识点问答题(六)
云原生·容器·kubernetes
rider1891 小时前
【1】搭建k8s集群系列(二进制部署)之系统初始化
云原生·容器·kubernetes
阳小江2 小时前
Docker知识点
运维·docker·容器
极客柒3 小时前
RustDesk 开源远程桌面软件 (支持多端) + 中继服务器伺服器搭建 ( docker版本 ) 安装教程
服务器·docker·开源
只是橘色仍温柔3 小时前
xshell可以ssh连接,但vscode不行
运维·vscode·ssh
IT里的交易员3 小时前
【系统】换硬盘不换系统,使用WIN PE Ghost镜像给电脑无损扩容换硬盘
运维·电脑
共享家95273 小时前
深入剖析Linux常用命令,助力高效操作
linux·运维·服务器
小刘爱喇石( ˝ᗢ̈˝ )3 小时前
玛卡巴卡的k8s知识点问答题(七)
云原生·容器·kubernetes
大刘讲IT3 小时前
制造业数字化转型:流程改造先行还是系统固化数据?基于以MTO和MTS的投资回报分析
运维·经验分享·生活·产品经理·数据可视化