Docker 失败并显示“无法启动 containerd:等待 containerd 启动超时”

hor*_*ius 1 ubuntu haskell-snap-framework docker

我在 Ubuntu 18.04.2 上使用 snap 安装了 docker。

当我尝试启动 docker 时,它失败并显示以下错误日志。

2020-07-16T23:49:14Z docker.dockerd[932]: failed to start containerd: timeout waiting for containerd to start
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Main process exited, code=exited, status=1/FAILURE
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Failed with result 'exit-code'.
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Service hold-off time over, scheduling restart.
2020-07-16T23:49:14Z systemd[1]: snap.docker.dockerd.service: Scheduled restart job, restart counter is at 68.
2020-07-16T23:49:14Z systemd[1]: Stopped Service for snap application docker.dockerd.
2020-07-16T23:49:14Z systemd[1]: Started Service for snap application docker.dockerd.
Run Code Online (Sandbox Code Playgroud)

它一遍又一遍地进入重新启动循环。我应该怎么做才能让 docker 重新工作?

hor*_*ius 5

在这种情况下,docker 正在等待 containerd 启动。containerd pid 位于

/var/snap/docker/471/run/docker/containerd/containerd.pid. 
Run Code Online (Sandbox Code Playgroud)

这个pid不存在。但是当服务器被毫不客气地关闭时,该文件并没有被删除。删除这个文件可以让containerd进程重新启动,问题就解决了。我相信 docker.pid 文件也指向一个不存在的 pid 的地方存在类似的问题。