我想从Docker注册表中提取Docker映像,但遇到以下问题:
$ docker pull <docker registry>/<image name>/<tag>
Error response from daemon: Get <docker registry>/v1/_ping: x509: certificate signed by unknown authority
我尝试使用“卷曲”并得到类似的错误消息:
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
因此,我使用以下命令下载了CA证书并导入到服务器(RedHat Linux 7)中:
cp root_cert.cer /etc/pki/ca-trust/source/anchors/
update-ca-trust
导入根证书后,我可以看到curl
它工作正常,因为它不会抱怨证书错误,但是,如果我使用,docker pull
我仍然会遇到同样的问题。是docker
使用不同于CA证书的位置curl
?docker pull
在这种情况下如何解决该问题?
您可能需要重新启动docker服务以获取它以检测OS证书中的更改。
Docker确实有一个额外的位置,您可以用来信任单个注册表服务器CA。您可以将CA证书放入其中/etc/docker/certs.d/<docker registry>/ca.crt
。如果在image标签中指定了端口号,请添加端口号,例如
/etc/docker/certs.d/my-registry.example.com:5000/ca.crt
谢谢!
service docker restart
解决了我更改后的问题!另一个说明很有用,因为我可以信任特定的Docker注册表而不会影响其他应用程序。