containerd 使用 docker 镜像加速器的问题
在 /etc/containerd/config.toml 中按下面的方式添加镜像加速器
[plugins]
[plugins."io.containerd.grpc.v1.cri".registry]
...
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://xxxxxx.mirror.aliyuncs.com"]
pull image 时没有走镜像加速器
# nerdctl pull docker.io/daprio/daprd:1.8.3
INFO[0011] trying next host error="failed to authorize: failed to fetch anonymous token: Get \"https://auth.docker.io/token?scope=repository%3Adaprio%2Fdaprd%3Apull&service=registry.docker.io\": net/http: TLS handshake timeout" host=registry-1.docker.io
请问如何解决这个问题?
回答
上面的配置方式是旧版 conainterd 采用的,已经 deprecated,改用新版配置方法解决了
- 在
/etc/containerd/config.toml中, 在[plugins."io.containerd.grpc.v1.cri".registry]下面添加 config_path
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
- 创建文件夹
/etc/containerd/certs.d/docker.io/,在其中添加包含下面内容的hosts.toml文件
[host."https://xxxxxx.mirror.aliyuncs.com"]
capabilities = ["pull"]
- 重启 containerd 使配置生效
systemctl restart containerd