Docker 服务在 Ubuntu 18.04 更新后不再启动:dm_task_run 失败/没有这样的设备 storage-driver=overlay2

Docker service does not start anymore after Ubuntu 18.04 update: dm_task_run failed / no such device storage-driver=overlay2

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

failed to mount overlay: no such device storage-driver=overlay2 docker failed to start daemon: error initializing graphdriver: driver not supported

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

failed to start daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

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

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

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

当前版本:

完整的错误信息:

INFO[2020-09-10T12:38:41.720023381+02:00] Starting up INFO[2020-09-10T12:38:41.721017055+02:00] detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf INFO[2020-09-10T12:38:41.723286420+02:00] parsed scheme: "unix"
module=grpc INFO[2020-09-10T12:38:41.723397263+02:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2020-09-10T12:38:41.723468274+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc INFO[2020-09-10T12:38:41.723493045+02:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2020-09-10T12:38:41.727552254+02:00] parsed scheme: "unix"
module=grpc INFO[2020-09-10T12:38:41.727619515+02:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2020-09-10T12:38:41.727666336+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc INFO[2020-09-10T12:38:41.727698707+02:00] ClientConn switching balancer to "pick_first" module=grpc ERRO[2020-09-10T12:38:41.845132923+02:00] [graphdriver] prior storage driver devicemapper failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed failed to start daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

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

所以对我来说是:

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