You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拉取Docker镜像时提示找不到AddResource方法的问题求助

解决Docker拉取镜像时的AddResource方法未实现错误

我之前也碰到过一模一样的问题,这个报错的根源很明确:你的containerd版本太低了。Docker 20.10.x系列依赖的containerd需要支持AddResource这个lease相关的方法,但你当前用的containerd v1.2.4是比较旧的版本,根本没实现这个接口,所以不管拉什么镜像都会失败。

下面是亲测有效的修复步骤:

第一步:先备份配置(稳妥起见)

先把现有的containerd配置文件备份一份,万一操作出问题还能恢复:

sudo cp /etc/containerd/config.toml /etc/containerd/config.toml.bak

第二步:升级containerd到兼容版本

Docker 20.10.x至少需要containerd 1.4.x以上的版本,这里给你两种升级方式:

方式一:通过Docker官方源一键升级(推荐)

如果你是用Docker官方源装的Docker,直接重新安装Docker Engine就行,它会自动把配套的containerd升级到兼容版本:

# 先停掉Docker和containerd服务
sudo systemctl stop docker
sudo systemctl stop containerd

# 重新安装同系列的最新稳定版(以Ubuntu为例,其他系统换对应的包管理命令)
sudo apt-get update
sudo apt-get install docker-ce=5:20.10.24~3-0~ubuntu-$(lsb_release -cs) docker-ce-cli=5:20.10.24~3-0~ubuntu-$(lsb_release -cs) containerd.io

要是你用的是CentOS/RHEL,把apt-get换成yum或者dnf就行,包名一致。

方式二:手动单独升级containerd

如果不想动Docker本身,也可以单独升级containerd:

  • 前往containerd官方发布渠道,下载与Docker 20.10.x兼容的1.4.x系列稳定版(比如v1.4.13)的Linux amd64二进制压缩包。
  • 将下载的压缩包解压到系统目录:
sudo tar Cxzvf /usr/local containerd-<你的版本号>-linux-amd64.tar.gz
  • 同步下载对应版本的runc二进制文件(确保和containerd版本匹配),将其安装到系统路径:
sudo install -m 755 runc.amd64 /usr/local/sbin/runc
  • 重启服务使升级生效:
sudo systemctl restart containerd
sudo systemctl restart docker

第三步:验证修复效果

拉个轻量的测试镜像试试,比如alpine:

docker pull alpine:latest

再检查下containerd版本,确认已经升级成功:

containerd --version

万一还是不行?试试重置containerd状态

如果升级后还是报错,可以试试重置containerd的本地状态(注意:这个操作会清除已拉取的镜像和本地容器状态,谨慎执行):

sudo systemctl stop containerd
sudo rm -rf /var/lib/containerd
sudo systemctl start containerd

内容的提问来源于stack exchange,提问作者lrouter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:28:21