Ubuntu 18.04 更新后 Docker 服务不再启动:dm_task_run failed / no such device storage-driver=overlay2

Posted

技术标签:

【中文标题】Ubuntu 18.04 更新后 Docker 服务不再启动:dm_task_run failed / no such device storage-driver=overlay2【英文标题】:Docker service does not start anymore after Ubuntu 18.04 update: dm_task_run failed / no such device storage-driver=overlay2 【发布时间】:2020-12-28 20:23:49 【问题描述】:

在 Ubuntu 18.04(当前为 18.04.5)上触发无人值守升级并重新启动服务器后,我的 docker 服务不再启动。所以我尝试使用 sudo dockerd 手动运行它,但出现以下错误:

无法挂载覆盖:没有这样的设备 storage-driver=overlay2 docker 无法启动守护进程:初始化图形驱动程序时出错:驱动程序没有 支持

在摆弄各种建议(包括强制重启 x 次)后,我放弃并卸载了 docker(包括删除 usr/lib/docker)以重新安装最新版本。但这只是将错误消息更改为:

无法启动守护程序:初始化图形驱动程序时出错:设备映射器: 错误运行 deviceCreate (CreatePool) dm_task_run failed

我有足够多的磁盘空间,并且已经尝试删除 /usr/lib/docker 文件夹(顺便说一句,我之前的安装至少没有 overlay2 文件夹),但这些建议不起作用.如果我强制 --storage-driver=overlay2 我从上面得到旧的“无法安装覆盖:...”。

我现在完全不知道如何解决这个问题。有什么想法吗?

编辑:似乎所有 dm_* 错误都不应该是我的问题,因为它们来自不应该使用的 devicemapper。相反,overlay2 的东西应该可以工作。所以这一切都归结为:为什么 overlay2 在我的机器上不起作用(不再?)?

当前版本:

Ubuntu 18.04.5 LTS(GNU/Linux 4.15.0-106-generic x86_64) Docker 版本 19.03.12,内部版本 48a66213fe

完整的错误信息:

INFO[2020-09-10T12:38:41.720023381+02:00] 启动 INFO[2020-09-10T12:38:41.721017055+02:00] 检测到 127.0.0.53 名称服务器,假设 systemd-resolved,所以使用 resolv.conf: /run/systemd/resolve/resolv.conf INFO[2020-09-10T12:38:41.723286420+02:00] 解析方案:“unix” 模块=grpc INFO[2020-09-10T12:38:41.723397263+02:00] 方案“unix” 未注册,回退到默认方案 module=grpc INFO[2020-09-10T12:38:41.723468274+02:00] ccResolverWrapper:发送 更新到 cc: [unix:///run/containerd/containerd.sock 0 ] 模块=grpc 信息[2020-09-10T12:38:41.723493045+02:00] ClientConn 将平衡器切换到“pick_first”模块=grpc INFO[2020-09-10T12:38:41.727552254+02:00] 解析方案:“unix” 模块=grpc 信息[2020-09-10T12:38:41.727619515+02:00] 方案“unix” 未注册,回退到默认方案 module=grpc INFO[2020-09-10T12:38:41.727666336+02:00] ccResolverWrapper:发送 更新到 cc: [unix:///run/containerd/containerd.sock 0 ] 模块=grpc 信息[2020-09-10T12:38:41.727698707+02:00] ClientConn 将平衡器切换到“pick_first”模块=grpc ERRO[2020-09-10T12:38:41.845132923+02:00] [graphdriver] 事先存储 driver devicemapper failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed 启动守护进程失败:错误 初始化graphdriver:devicemapper:运行deviceCreate时出错 (CreatePool) dm_task_run 失败

【问题讨论】:

【参考方案1】:

我终于找到了解决办法:好像是ubuntu更新在更新内核时搞砸了。重新安装内核后一切正常,docker 使用 overlay2 运行。

所以对我来说是:

sudo apt-get install --reinstall linux-image-4.15.0-106-generic

【讨论】:

这对我有用。对于其他人:您的内核可能不同。运行 sudo apt-get install --reinstall linux-image-`uname -r` sudo reboot 以使更改生效。

以上是关于Ubuntu 18.04 更新后 Docker 服务不再启动:dm_task_run failed / no such device storage-driver=overlay2的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu 18.04上安装Docker

【Docker】Ubuntu 18.04 安装Docker

ubuntu18.04安装docker

ubuntu18.04 64bit如何安装docker

ubuntu 安装docker

ubuntu18.04/20.04 安装docker