containerd v1.4 v1.5 v1.6版本修改非安全镜像仓库方法不一样,以对接harbor仓库为例
v1.4 v1.5版本配置
#设置认证信息仓库信息
REGISTRY=test.harbor.com #harbor仓库地址
REGISTRY_USER=admin #用户名
REGISTRY_PASSWD=admin #密码
#如果没有配置,生成配置信息
containerd config default > /etc/containerd/config.toml
#备份配置信息
cp /etc/containerd/config.toml /root/config.toml_$(date +%F_%T)
#修改 /etc/containerd/config.tom,注意缩进
[plugins.cri.registry.mirrors."${REGISTRY}"]
endpoint = ["https://${REGISTRY}", "http://${REGISTRY}"] #设置仓库地址
[plugins.cri.registry.configs]
[plugins.cri.registry.configs."${REGISTRY}".tls]
insecure_skip_verify = true #设置是否为https
[plugins.cri.registry.configs."${REGISTRY}".auth] #设置仓库认证,如果仓库没有认证无需配置
username = "$REGISTRY_USER"
password = "$REGISTRY_PASSWD
#配置完成后重启containerd
systemctl restart containerd
v1.6以后版本配置
#设置认证信息仓库信息
REGISTRY=test.harbor.com #harbor仓库地址
REGISTRY_USER=admin #用户名
REGISTRY_PASSWD=admin #密码
#如果没有certs.d文件,则创建
mkdir -p /etc/containerd/certs.d/$REGISTRY/
#编辑host.toml文件
cat > /etc/containerd/certs.d/$REGISTRY/hosts.toml <<EOF
server = "$REGISTRY"
[host."http://$REGISTRY"]
capabilities = ["pull", "resolve", "push"] #配置权限
skip_verify = true #配置是否https认证
EOF
fi
#备份config.toml文件
cp /etc/containerd/config.toml /root/config.toml_$(date +%F_%T)
#在如下字段添加
[plugins."io.containerd.grpc.v1.cri".registry.auths]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."$REGISTRY".auth]
username = "$REGISTRY_USER"
password = "$REGISTRY_PASSWD
#重启containerd
systemctl restart containerd