前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 启动失败排查(loopback attach failed)

docker 启动失败排查(loopback attach failed)

作者头像
用户10325771
发布2023-03-01 17:15:14
1.3K0
发布2023-03-01 17:15:14
举报

某个清晨来到公司,突然发现MySQL,redis一直Connection TimedOut,打开Navicat连接MySQL连接不上,无法打开Portainer(docker可视化操作页面);远程连接服务器发现docker挂掉了,使用systemctl start docker无法启动,使用dockerd启动查看报错信息。

1、error initializing graphdriver: loopback attach failed(第一个错误信息)

错误信息:

代码语言:javascript
复制
ERRO[2022-04-20T10:46:43.988072049+08:00] Error opening loopback device: open /dev/loop0: no such device or address 
ERRO[2022-04-20T10:46:43.988117534+08:00] [graphdriver] prior storage driver devicemapper failed: loopback attach failed 
  • 通过百度查找到相关解决方案都是在 /dev 路劲下新建 loop$num等文件
  • 以上图修改存储驱动等方式解决无法解决上述错误;
image.png
image.png
  • 手动添加使用以下命令控制回路设备的回路模块后:
代码语言:javascript
复制
insmod /lib/modules/3.10.0-327.36.2.el7.x86_64/kernel/drivers/block/loop.ko
复制代码

/lib/modules/路径后根据你本机的内核版本进入对应内核版本文件夹即可。

2、 Error running deviceCreate (CreatePool) dm_task_run failed

错误信息:

代码语言:javascript
复制
[graphdriver] prior storage driver "devicemapper" failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed
复制代码
  • 可能是因为没有足够的空间磁盘(并不是):
image.png
image.png
  • 使用 dockerd -D –storage-driver=overlay指定存储驱动的方式来进行修复,没有用(试过了官网给出的所有选项)
image.png
image.png
3、解决方式:

官网[:](dockerd |Docker 文档)

再次翻看文档时发现:

image.png
image.png
  1. 查看内核版本:uname -sr发现版本3.*
  2. 升级内核:
代码语言:javascript
复制
#导入该源的秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#启用该源仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看有哪些内核版本可供安装
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#版本选择
    #安装的长期稳定版本,稳定可靠
    yum --enablerepo=elrepo-kernel install kernel-lt -y 
    #安装的是主线版本,该版本比较激进,慎重选择
    yum --enablerepo=elrepo-kernel install kernel-ml -y
复制代码
  1. 设置 GRUB 默认的内核版本:
代码语言:javascript
复制
GRUB 初始化的第一个内核将作为默认内核,记得查看你想使用的内核排序
# vim /etc/default/grub 设置 GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
#这里的saved改为0即可,重启后,默认就是你上次所选的版本了。
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

命令行执行:grub2-mkconfig -o /boot/grub2/grub.cfg
复制代码
  1. 重启机器,再次使用 dockerd 启动docker测试是否可以正常启动;完美运行,停止使用systemctl start docker启动即可
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、error initializing graphdriver: loopback attach failed(第一个错误信息)
  • 2、 Error running deviceCreate (CreatePool) dm_task_run failed
  • 3、解决方式:
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com