更新时间:2026-09-23 GMT+08:00
分享

镜像加速器

设置镜像加速器后还是拉取失败,可能原因:

  1. 国内网络访问 DockerHub 镜像仓库异常通知。如果您无法解决拉取失败的问题请提交工单。
  2. 开源镜像源DockerHub中不存在您要拉取的镜像。
  3. 容器引擎所在的虚拟机节点配置异常,请提交工单进行处理。

配置的镜像加速器地址不正确,导致无法拉取开源镜像

  1. 排查 Docker 客户端配置的镜像加速器是否正确,通过执行以下命令确认是否为本局点 SWR 镜像加速器地址:
    docker info | grep -A 5 "Registry Mirrors"
  2. 确认输出的镜像加速器地址与当前区域 SWR 的镜像加速器地址一致。如不一致,请修改 /etc/docker/daemon.json 中的 registry-mirrors 配置并重启 Docker 服务。

执行 docker search 报错

原因:镜像加速器不支持 docker search 检索功能。

解决方式

明确镜像版本后,直接执行以下命令拉取:

docker pull ${namespace}/${repository}:${tag}

操作系统安装 Docker 29.x.x 版本后无法拉取镜像

Docker 29.x.x 及以上版本存在兼容性问题,可能导致通过镜像加速器拉取镜像失败。建议卸载 29.x.x 版本并安装 18.06~28.5 范围内的 Docker 版本。卸载和重装操作请参见部署Docker。

镜像层已拉取,但最后一个接口失败

问题现象: 镜像层下载完成后,Docker 在请求 referrers接口时返回失败,导致镜像拉取不完整。

原因分析: SWR 镜像加速器不支持 referrers 接口,Docker 28 及以上版本默认启用 containerd image store,会调用该接口,从而导致拉取失败。

解决方案:

  • 方案一(推荐):安装 Docker 28 以下版本

    建议安装 Docker 18.06~28.5 范围内的 Docker 版本,从Docker 官方安装指南 中选取具体版本进行安装,然后配置镜像加速器拉取镜像。

    方案二:Docker 29 版本关闭 containerd image store

    如果已安装 Docker 29.x.x,在 /etc/docker/daemon.json 中增加如下配置,重启 Docker 后即可正常使用镜像加速器拉取镜像:

    {
      "features": {
        "containerd-snapshotter": false
      }
    }

    此配置为 JSON 格式,需确保格式正确(引号、逗号等),修改完成后执行 systemctl restart docker 重启 Docker 引擎使其生效。

Docker Hub 中存在对应版本镜像,但无法拉取

确认 Docker Hub 中镜像存在但通过镜像加速器无法拉取时,排查方法如下:

  • 确认镜像架构与虚拟机架构是否一致。
  • 确认镜像加速器地址正确,执行 docker info 检查配置。
  • 确认镜像名称和版本号拼写正确,包括 namespace、repository 和 tag 的大小写。

相关文档