我试图从 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
是否使用与 curl
不同的 ca-cert 位置?在这种情况下,如何解决 docker pull
的问题? 最佳答案
您可能需要重新启动 docker 服务以使其检测操作系统证书的更改。
Docker 确实有一个额外的位置,您可以用来信任单个注册服务器 CA。您可以将 CA 证书放在 /etc/docker/certs.d/<docker registry>/ca.crt
内。如果您在图像标签中指定端口号,请包括端口号,例如在 Linux 中。
/etc/docker/certs.d/my-registry.example.com:5000/ca.crt
或在 Windows 10 中:C:\ProgramData\docker\certs.d\ca.crt
关于docker - "docker pull"未知权威签署的证书,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50768317/