配置登录信息
为确保正确配置,下面提供完整的设置步骤:
- 按以下内容追加到
/etc/containerd/config.toml
- 将下述
your_username
和your_password
替换为您的实际账号和密码(毫秒镜像账号为您的手机号) - 保存后执行
sudo systemctl restart containerd
使配置生效 - 支持的加速列表请参考:镜像列表,除dockerhub之外,其他加速站点均需登录后使用。
[plugins."io.containerd.grpc.v1.cri".registry]
# 1. 配置镜像加速 mirrors
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://docker.1ms.run"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
endpoint = ["https://k8s.1ms.run"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
endpoint = ["https://gcr.1ms.run"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
endpoint = ["https://ghcr.1ms.run"]
# 2. 配置私有仓库认证(用户名/密码)
[plugins."io.containerd.grpc.v1.cri".registry.configs]
# 为每个加速站点单独配置认证
[plugins."io.containerd.grpc.v1.cri".registry.configs."docker.1ms.run".auth]
username = "your_username" # 替换为实际用户名
password = "your_password" # 替换为实际密码
[plugins."io.containerd.grpc.v1.cri".registry.configs."k8s.1ms.run".auth]
username = "your_username"
password = "your_password"
[plugins."io.containerd.grpc.v1.cri".registry.configs."gcr.1ms.run".auth]
username = "your_username"
password = "your_password"
[plugins."io.containerd.grpc.v1.cri".registry.configs."ghcr.1ms.run".auth]
username = "your_username"
password = "your_password"
注意:使用crictl等命令行工具调试时可能会提示此配置方式已废弃,您可以忽略该警告,镜像拉取不受影响。
延伸资料
Containerd配置私有镜像仓库(如Harbor)主要有两种方式:修改config.toml
文件或使用certs.d
目录配置。
详细配置方法如下:
1. 通过 /etc/containerd/config.toml
配置
TLS安全配置(适用于自签名证书或HTTP仓库)
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.example.com".tls]
insecure_skip_verify = true # 跳过TLS验证
认证信息配置
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.example.com".auth]
username = "admin"
password = "Harbor12345"
镜像仓库地址配置
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.example.com"]
endpoint = ["https://harbor.example.com"]
endpoint = ["http://harbor.example.com"] # HTTP仓库需显式配置
2. 使用 /etc/containerd/certs.d/
目录
以下配置用于 containerd v2版本。
指向 certs.d
目录
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
创建 hosts.toml
文件
mkdir -p /etc/containerd/certs.d/harbor.example.com
cat > /etc/containerd/certs.d/harbor.example.com/hosts.toml <<EOF
server = "https://harbor.example.com"
[host."https://harbor.example.com"]
capabilities = ["pull", "resolve", "push"]
# 指定自签证书
# ca = "ca.crt"
EOF
配置认证信息
server = "https://harbor.example.com"
[host."https://harbor.example.com"]
capabilities = ["pull", "resolve", "push"]
[host."https://harbor.example.com".header]
Authorization = "Basic <TOKEN>" # 填入"用户名:密码"的base64值
注意:毫秒镜像当前不支持此认证方式,请使用篇首的配置方法。
3. Kubernetes环境配置
为Kubernetes环境配置镜像拉取凭证:
-
创建Secret:
kubectl create secret docker-registry regcred \ --docker-server=k8s.1ms.run \ --docker-username=<your_username> \ --docker-password=<your_password>
-
在Pod配置中引用:
spec: containers: - name: 1ms-container image: k8s.1ms.run/<name>/<image> imagePullSecrets: - name: regcred
注意事项
ctr
命令不会读取config.toml
中的配置,需手动指定--hosts-dir "/etc/containerd/certs.d"
- 建议使用
crictl
或nerdctl
进行命令行调试 - 如需在k8s环境下使用,每个节点都需要配置
/etc/containerd/config.toml
并重启containerd,生产环境建议使用spec.imagePullSecrets
的方式。
如需更详细的证书配置或镜像加速,可参考相关文档。
https://www.cnblogs.com/v-fan/p/18389156
https://www.cnblogs.com/niuben/p/18164350
https://www.cnblogs.com/hahaha111122222/p/16419768.html
https://blog.csdn.net/weixin_40548182/article/details/130972212
https://blog.csdn.net/weixin_44388689/article/details/127086026