现象如下:
首先来谈403 forbidden问题:
这个问题查了很久也没找到原因, 后来chatGPT提示使用curl命令测试一下网络连接
然后使用改进后的curl命令
curl -vkI https://registry.myharbor.com/v2/
参数说明:
-v:表示可视化命令执行过程
-k: 忽略https证书错误
-I: 表示 只输出 HTTP 响应的头部信息,而不包括响应体
发现问题所在了,原来是私有habor仓库没有在/etc/hosts做域名解析,结果通过DNS服务器自动解析到一个错误的ip地址了!
解决办法很简单: 在/etc/hosts手动加上域名解析就OK了
再来看第二个问题:x509: certificate signed by unknown authority错误
这个问题的本质其实是如何让本地docker信任远程docker仓库的自签证书
网上无论国外还是国内,都是说把证书拷贝/etc/docker/certs.d/域名/的目录里面
然后harbor的官网和docker官网也都是这么说的,但是经过我无数次测试的结果,最终发现:
这种拷贝证书的方法是完全无效的!也就是扯淡的方法!
真正有效解决办法: 在/etc/docker/daemon.json文件中加入:
"insecure-registries" : ["https://你的自建harbor仓库域名"],然后重启docker。
然后问题解决:文章来源:https://www.toymoban.com/news/detail-857613.html
文章来源地址https://www.toymoban.com/news/detail-857613.html
到了这里,关于解决docker 推送自签证书仓库报错:403 forbidden或者x509: certificate signed by unknown authority错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!