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