Docker 启动失败 no such device storage-driver=overlay2
💡
原文中文,约1800字,阅读约需5分钟。
📝
内容提要
在k8s集群中,有几个pod的状态不正常,原因是docker没有正常启动。排查步骤包括检查内核模块、设备、磁盘空间、权限、内核版本、配置文件等。如果问题仍未解决,可以尝试使用其他存储驱动程序或更新Docker版本。同时,还可以查看系统日志以获取更多信息。
🎯
关键要点
- k8s集群中有几个pod状态不正常,原因是docker未正常启动。
- 查看node机器的系统启动日志,发现kubelet启动失败,docker启动日志显示存储驱动问题。
- 排查步骤包括检查内核模块、设备、磁盘空间、权限、内核版本和配置文件。
- 确保overlay2存储驱动程序所需的内核模块已加载。
- 检查Docker是否能够访问overlay2存储驱动程序所需的设备。
- 确保Docker有足够的磁盘空间来创建overlay2存储驱动程序。
- 确保Docker进程具有足够的权限访问overlay2存储驱动程序所需的设备。
- 确认overlay模块与当前内核版本兼容,必要时更新内核。
- 检查Docker配置文件中storage-driver设置是否为overlay2。
- 重启Docker服务以使更改生效。
- 如果问题仍未解决,可以尝试其他存储驱动程序或更新Docker版本。
- 检查系统日志以获取更多关于Docker启动失败的信息。
❓
延伸问答
Docker 启动失败的常见原因是什么?
Docker 启动失败的常见原因包括存储驱动问题、内核模块未加载、磁盘空间不足和权限不足等。
如何检查Docker的存储驱动配置?
可以查看Docker配置文件 /etc/docker/daemon.json 中的 storage-driver 设置,确保其为 overlay2。
如果Docker无法启动,应该如何排查?
排查步骤包括检查内核模块、设备、磁盘空间、权限、内核版本和配置文件等。
如何确认overlay2存储驱动所需的内核模块已加载?
使用命令 lsmod | grep overlay 查看已加载的模块,确保 overlay 模块存在。
如何解决Docker存储驱动不支持的问题?
可以尝试手动加载overlay模块,检查设备挂载情况,或更新Docker版本。
如何查看Docker的启动日志以获取更多信息?
可以使用命令 journalctl -u docker 查看Docker的启动日志,或检查 /var/log/ 目录下的相关日志。
🏷️
标签
➡️