麒麟上docker报错是runc的版本不对的问题

找到根因了! 这是一个严重的 版本不匹配 问题:

组件 版本 状态
Docker Engine 28.4.0(2025 年新版) 正常
containerd v1.7.28(新版) 正常
runc 1.0.0-rc3(2017 年的预发布版) 极度过旧!
Docker 28.4.0 要求 runc 至少 1.1.x 以上,而你系统上的 runc 是 8 年前的 1.0.0-rc3,完全不兼容。这就是 "permission denied" 的真正原因——旧版 runc 无法正确执行新版 containerd 传递的容器创建指令。

修复方案:升级 runc
请在麒麟系统上执行:

1. 查看当前 runc 位置

which runc

2. 备份旧版本

cp $(which runc) /usr/bin/runc.bak

3. 下载最新 runc(v1.2.6)

如果麒麟系统能联网:

curl -LO https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64

4. 安装

install -m 755 runc.amd64 /usr/bin/runc

5. 验证版本

runc --version

6. 重启 Docker

systemctl restart docker

7. 测试

docker run --rm hello-world

runc放错位置了,需要重新放

替换 /usr/local/bin 下的旧版 runc

cp /usr/local/bin/runc /usr/local/bin/runc.bak
install -m 755 runc.amd64 /usr/local/bin/runc

验证版本(这次应该显示 1.2.6)

runc --version

重启 Docker

systemctl restart docker

测试

docker run --rm hello-world

posted @ 2026-03-28 23:15  竹石2020  阅读(20)  评论(0)    收藏  举报