我试图从 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/

10-15 22:27