docker突然无法启动

根据你提供的日志,Docker 守护进程启动失败的根本原因是:

error initializing buildkit: error creating buildkit instance: failed to find runc binary

系统缺少 runc 二进制文件,或者 runc 不在可执行路径中。runc 是 Docker 运行容器的底层运行时,必须安装。

解决方案

请按照以下步骤操作:

1. 检查是否已安装 runc

which runc
runc -v

如果提示 command not found,说明未安装。

2. 安装 runc

方法一:通过麒麟系统仓库安装(推荐)
麒麟 V10 的官方源中通常包含 runc 包,可以直接安装:

sudo yum install -y runc

方法二:如果麒麟源没有 runc,安装 containerd.io
某些 Docker 版本(尤其是从 Docker 官方源安装的)会将 runc 打包在 containerd.io 中:

sudo yum install -y containerd.io

方法三:卸载现有 Docker,安装麒麟适配版本
如果你希望避免兼容性问题,可以彻底改用麒麟系统适配的 Docker 版本(即 docker-engine):

# 停止并禁用当前 Docker
sudo systemctl stop docker
sudo systemctl disable docker

# 卸载当前 Docker(注意备份数据)
sudo yum remove docker-ce docker-ce-cli containerd.io

# 安装麒麟适配的 docker
sudo yum install -y docker

3. 重新启动 Docker

安装完成后,重新启动 Docker 服务:

sudo systemctl start docker
sudo systemctl status docker   # 确认状态为 active (running)

4. 测试运行

sudo docker run hello-world

如果输出欢迎信息,说明问题解决。

补充说明

  • 日志中还有关于 overlay2 存储驱动的信息,但那是正常的,只要 runc 安装后 Docker 就能启动。
  • 如果安装 runc 后依然报错,可能是 PATH 问题。可以尝试重新登录或执行 hash -r 刷新命令缓存,或者直接使用绝对路径检查:/usr/bin/runc 是否存在。
  • 麒麟 V10 上使用 Docker 官方最新版(28.4.0)可能存在未知兼容风险,建议优先考虑麒麟适配版本(docker-engine),该版本已针对麒麟内核做过测试和补丁。

如果以上步骤仍无法解决,请提供 rpm -qa | grep runcecho $PATH 的输出,以便进一步排查。

posted @ 2026-03-06 21:49  竹石2020  阅读(1)  评论(0)    收藏  举报