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

为何使用ctr image pull拉取镜像需显式指定Docker Hub registry?

问题原因分析

这是因为ctr(containerd的官方客户端工具)默认不会自动为无域名前缀的镜像名补全Docker Hub的docker.io仓库域名,而Docker CLI这类工具会自动做补全处理。

具体细节:

  • 当你只输入e2eteam/busybox:1.29时,ctr会直接把这个名称当作仓库服务器地址+镜像路径解析,试图连接名为e2eteam的主机,自然会出现"无法解析主机"的错误。
  • 显式指定docker.io/e2eteam/busybox:1.29时,ctr明确知道要从Docker Hub(docker.io)拉取镜像,因此能正常完成拉取流程。

如果想让ctr自动补全Docker Hub前缀,可以修改containerd的配置文件(通常路径为/etc/containerd/config.toml),添加默认仓库配置:

  1. 找到[plugins."io.containerd.grpc.v1.cri".registry]配置区块
  2. 新增或修改默认仓库的镜像配置:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://registry-1.docker.io"]
  1. 重启containerd服务生效:systemctl restart containerd

之后再执行ctr image pull e2eteam/busybox:1.29,ctr就会自动将其解析为docker.io/e2eteam/busybox:1.29进行拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:20:56