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/ 目录下的相关日志。

🏷️

标签

➡️

继续阅读