我试图从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”并得到类似的错误消息:
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在这种情况下如何解决该问题?
curl
docker pull
docker
您可能需要重新启动docker服务以获取它以检测OS证书中的更改。
Docker确实有一个额外的位置,您可以用来信任单个注册表服务器CA。您可以将CA证书放入其中/etc/docker/certs.d/<docker registry>/ca.crt。如果在image标签中指定了端口号,请添加端口号,例如
/etc/docker/certs.d/<docker registry>/ca.crt
/etc/docker/certs.d/my-registry.example.com:5000/ca.crt