![使用 containerd 时如何登录 docker hub?](https://linux22.com/image/773194/%E4%BD%BF%E7%94%A8%20containerd%20%E6%97%B6%E5%A6%82%E4%BD%95%E7%99%BB%E5%BD%95%20docker%20hub%EF%BC%9F.png)
使用 docker 我可以运行docker login
,但是如何使用ctr
/做类似的事情containerd
?
由于达到速率限制,我们需要登录:
ctr:复制失败:httpReaderSeeker:打开失败:意外状态代码https://registry-1.docker.io/v2/library/[...]: 429 请求过多 - 服务器消息:toomanyrequests:您已达到拉取速率限制。您可以通过身份验证和升级来增加限制:https://www.docker.com/increase-rate-limit
下列的containerd 文档和/etc/containerd/config.toml
:
version = 2
[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".auth]
username = "myusername"
password = "mypassword"
似乎不起作用。
答案1
是的,我也是,我不明白为什么。因此,我按照指南编辑了我的配置:https://docs.d2iq.com/dkp/kommander/1.4/operations/manage-docker-hub-rate-limits/
正如您所见,文档中的原始代码
[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.io".auth]
如果更改为此(完整域名),它就可以工作
[plugins."io.containerd.grpc.v1.cri".registry.configs."registry-1.docker.io".auth]
重新启动 containerd 并检查。
测试,编写 bash 脚本
TOKEN=$(curl --user 'YOUR_LOGIN_USER:YOUR_LOGIN_PASSWORD' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest | grep -i rate
我的成绩是 198/200
ratelimit-limit: 200;w=21600
ratelimit-remaining: 198;w=21600