docker - 更新 docker(18.09.0) 会导致错误
问题描述
将 docker 更新到版本 18.09.0 后,我收到以下错误(使用 Ubuntu 18.04 的虚拟服务器):
Nov 09 20:53:52 localhost.localdomain modprobe[663]: modprobe: ERROR: ../libkmod/libkmod.c:514 lookup_builtin_file() could not open buitin file '/lib/modules/4.15.0/modules.builtin.bin
Nov 09 20:53:52 localhost.localdomain modprobe[663]: modprobe: FATAL: Module overlay not found in directory /lib/modules/4.15.0
uname -a
Linux localhost.localdomain 4.15.0 #1 SMP Wed May 23 10:04:13 MSK 2018 x86_64 x86_64 x86_64 GNU/Linux
同样在 Majaro 的 LXC 容器(使用 Ubuntu 18.04)上
Nov 09 21:06:38 Ubuntu modprobe[5393]: modprobe: ERROR:
../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.14.78-1-MANJARO/modules.dep.bin'
Nov 09 21:06:38 Ubuntu modprobe[5393]: modprobe: FATAL: Module overlay not found in directory /lib/modules/4.14.78-1-MANJARO
uname -a
Linux Ubuntu 4.14.78-1-MANJARO #1 SMP PREEMPT Sun Oct 21 07:57:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
docker -v
Docker version 18.09.0, build 4d60db4
我该如何解决?
解决方案
您必须覆盖一部分 containerd 服务文件:
systemctl edit containerd.service
然后插入以下内容并保存:
[Service]
ExecStartPre=
之后,您将能够启动 docker。供参考:https ://github.com/docker/for-linux/issues/475#issuecomment-437373774
本质上,您的 systemd 文件需要清除 ExecStartPre 值,最好使用覆盖文件,以便升级将正确更新主文件。
推荐阅读
- spring-security - 我应该返回“spring-authorization-server”中的所有权限吗?
- react-native - 世博会推送通知未在 android 上唤醒锁屏
- python - 将“:”替换为“南”
- smtp - 从 Windows server 2008 smtp 服务器向所有域名发送电子邮件
- azure-data-factory - 我在编写 azure 数据工厂复制活动以将数据从 azure delta Lake 提取到 azure SQL DB 时遇到困难
- ios - 正确使用 retrieveConnectedPeripheralsWithServices
- javascript - 获取用户输入的两个日历之间的天数差异
- javascript - Javascript 语句 document.getElementById('').style.display = "inline"; 稍后当我再次打开编辑器(Div)时生效
- sql - 从 xml 中提取值,它具有命名空间并解析 xml cdata
- javascript - 在 D3 中为传单设置动画而不更新底图