麒麟上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
本文来自博客园,作者:竹石2020,转载请注明原文链接:https://www.cnblogs.com/ch2020/p/19788922
浙公网安备 33010602011771号