我刚刚在运行 docker 的服务器上遇到了一些问题,我自己无法修复。我使用的是 Docker 版本 18.09.0,构建版本 4d60db4 和 Ubuntu 16.04.5 LTS。白天我注意到我的 docker 应用程序不可用,所以我检查了服务。当尝试使用 启动 docker 服务时service docker start
,我得到了A dependency job for docker.service failed. See 'journalctl -xe' for details
。当检查 journalctl 时,我得到了以下输出:
systemd[1]: Starting Docker Application Container Engine...
-- Subject: Unit docker.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit docker.service has begun starting up.
systemd[1]: Starting containerd container runtime...
-- Subject: Unit containerd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit containerd.service has begun starting up.
modprobe[811]: modprobe: ERROR: ../libkmod/libkmod.c:514 lookup_builtin_file() could not open builtin file '/lib/modules/4.4.0/modules.builtin.bin'
modprobe[811]: modprobe: FATAL: Module overlay not found in directory /lib/modules/4.4.0
systemd[1]: containerd.service: Control process exited, code=exited status=1
systemd[1]: Failed to start containerd container runtime.
-- Subject: Unit containerd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit containerd.service has failed.
--
-- The result is failed.
systemd[1]: Dependency failed for Docker Application Container Engine.
-- Subject: Unit docker.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit docker.service has failed.
--
-- The result is dependency.
systemd[1]: docker.service: Job docker.service/start failed with result 'dependency'.
systemd[1]: containerd.service: Unit entered failed state.
systemd[1]: containerd.service: Failed with result 'exit-code'.
systemd[1]: Stopped Docker Application Container Engine.
-- Subject: Unit docker.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit docker.service has finished shutting down.
我尝试重启服务器多次。系统上的其他一切都运行正常(邮件、备份、网站)。
我没有使用过 modprobe 或任何情况下的错误,因此任何详细的帮助都将不胜感激。
提前致谢
答案1
今天在 Debian 9 上将 docker-ce 升级到 18.09.0 版本后,我遇到了同样的错误。我无法为您提供该版本的解决方案,但返回到 18.06.1 版本确实可以重新启动。对于 Ubuntu,这应该是:
sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu
18.09.0 版本对你有用吗?升级后我的安装就崩溃了。
编辑: GitHub 上实际上有一份与此问题相关的报告。 https://github.com/containerd/containerd/issues/2772
似乎 newcontainerd
正在尝试加载覆盖模块,即使它已经加载。覆盖模块已加载到我的系统上,但我找不到该文件/lib/modules/
答案2
查看您是否有该文件(在原版 Ubuntu 16.04 上您肯定应该有):
find /lib/modules -name "*overlay*"
你能自己装载吗?
# modprobe overlay
# echo $?
0
# lsmod | grep overlay
overlay 49152 0
我不知道为什么 docker 无法加载它...但如果它很智能,如果你已经加载了它,它就不需要加载它了。所以如果你可以自己加载它,请尝试将其添加到/etc/modules
启动时加载(重启后再次使用 lsmod 验证)。
echo overlay >> /etc/modules