在pull docker镜像时报Error response from daemon: invalid registry endpoint https://docker-domain.com

在本地服务器搭建一个docker-registry时,如果不准备为此花钱去购买一个SSL密钥,可以使用自己授权的 SSL key让registry支持HTTPS加密访问。
生成SSL证书只要两行命令,将signdomain的值换成实际域名即可:

signdomain=https://docker-reg.××××.com.cn:55688
openssl req -nodes \
-subj "/C=CN/ST=BeiJing/L=Dongcheng/CN=$signdomain" \
-newkey rsa:4096 -keyout $signdomain.key -out $signdomain.csr
openssl x509 -req -days 3650 -in $signdomain.csr -signkey $signdomain.key -out $signdomain.crt

把生成的key和crt文件配给nginx就可以提供https访问了,只是因为是没有权威认证的自签名证书,使用docker访问时会提示下面的错误:


docker pull docker.webmaster.me/centos:centos6
Error: Invalid registry endpoint https://docker.webmaster.me/v1/: Get https://docker.webmaster.me/v1/_ping: x509: certificate signed by unknown authority. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry docker.webmaster.me` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/docker.webmaster.me/ca.crt

提示给出了解决方法,就是把上面生成的$signdomain.cr复制到 /etc/docker/certs.d/docker.webmaster.me/ca.crt 。按照这个方法做的话,docker pull 可以正常工作,但是如果我们的docker-registry开启了HTTP验证的话,pull之前需要先login,而实际证明docker login目前还不识别上面复制的CA证书。会提示certificate signed by unknown authority:

docker login docker.webmaster.me
Username: webmaster
Password:
Email: admin@webmaster.me
2014/12/27 23:41:23 Error response from daemon: Server Error: Post https://docker.webmaster.me/v1/users/: x509: certificate signed by unknown authority

正确的方法是,将我们生成的crt文件内容放入系统的CA bundle文件当中,使操作系统信任我们的自签名证书,docker自然也就没问题了。CentOS 6 / 7中bundle文件的位置在 /etc/pki/tls/certs/ca-bundle.crt:

cat $signdomain.crt >> /etc/pki/tls/certs/ca-bundle.crt

如果是其他Linux发行版,该文件的位置可能是下面这些,视情况而定:
/etc/ssl/certs/ca-certificates.crt
/etc/ssl/ca-bundle.pem
/etc/ssl/cert.pem
/usr/local/share/certs/ca-root-nss.crt
/etc/init.d/docker restart
修改完成后,必须重启客户端的docker服务。重启后再来docker login和docker pull ,成功了!

[root@localhost ~]# docker login docker.webmaster.me
Username: webmaster
Password:
Email: admin@webmaster.me
Login Succeeded
[root@localhost ~]# docker pull docker.tvmining.com/centos:centos6
Pulling repository docker.tvmining.com/centos
48a737539afd: Download complete
511136ea3c5a: Download complete
5b12ef8fd570: Download complete
70441cac1ed5: Download complete
Status: Downloaded newer image for docker.tvmining.com/centos:centos6
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 这个错误信息通常表示Docker无法连接到Docker镜像仓库。有几种可能的原因导致这个问题。首先,可能是网络连接问题,您可以尝试检查您的网络连接是否正常。其次,可能是DNS解析问题,您可以尝试修改resolv.conf文件中的nameserver来解决这个问题。另外,这个错误也可能是由于Docker镜像仓库的服务器问题引起的。如果是这种情况,您可以尝试等待一段时间后再次尝试。最后,如果您在拉取私有镜像或上传镜像时遇到这个问题,可能是因为您需要先进行Docker登录并提供凭证信息。请确保您已经正确登录并提供了正确的凭证信息。希望这些解决方法能够帮助您解决问题。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [docker拉取镜像时报错:docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: ...](https://blog.csdn.net/qq_47354826/article/details/129090363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Error response from daemon: Get https://registry-1.docker.io/v2/ ... read: connection refused](https://blog.csdn.net/zy1314567/article/details/107378677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值