我试图从 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-cert 位置是否与 curl
不同?在这种情况下,如何解决 docker pull
的问题?
原文由 Chen Xie 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可能需要重新启动 docker 服务以使其检测操作系统证书的更改。
Docker 确实有一个额外的位置,您可以使用它来信任单个注册表服务器 CA。您可以将 CA 证书放在
/etc/docker/certs.d/<docker registry>/ca.crt
中。如果您在图像标签中指定端口号,请包括端口号,例如在 Linux 中。或在 Windows 10 中: