containerd v1.4+ 如何通过配置Docker凭证实现身份认证?
配置containerd使用Docker Hub凭证(新方式)
你提到的旧配置格式确实已被containerd弃用,推荐使用/etc/containerd/certs.d/目录下的hosts.toml来配置镜像仓库凭证,以下是具体步骤和示例:
1. 创建目录结构
首先创建对应Docker Hub的配置目录:
mkdir -p /etc/containerd/certs.d/docker.io/
2. 编写hosts.toml配置文件
在上述目录下创建hosts.toml,完整示例如下:
server = "https://docker.io" [host."https://registry-1.docker.io"] capabilities = ["pull", "resolve"] [host."https://registry-1.docker.io".auth] username = "你的Docker Hub用户名" password = "你的Docker Hub密码或个人访问令牌"
配置说明
server:指定Docker Hub的根域名,用于匹配镜像地址中的仓库前缀host."https://registry-1.docker.io":指向Docker Hub实际的镜像存储服务器,所有拉取请求最终会转发到这里capabilities:设置为["pull", "resolve"],覆盖镜像拉取和地址解析的需求auth块:填写你的Docker Hub账号信息,推荐使用个人访问令牌替代明文密码(在Docker Hub账号的「Security」设置中生成,权限勾选「read:packages」即可)
3. 重启containerd服务
配置完成后,重启containerd使配置生效:
systemctl restart containerd
验证配置
可以通过拉取一个镜像测试配置是否生效,比如:
crictl pull docker.io/library/nginx:alpine
此时containerd会自动使用你配置的凭证拉取镜像,缓解共享IP带来的速率限制问题。
内容的提问来源于stack exchange,提问作者Ralf157
相关产品推荐
相关产品推荐

