docker-compose pull结果为x509:由未知权限签名的证书

问题描述 投票:10回答:4

我试图从dockerhub拉出elasticsearch图像时遇到以下错误。

docker-compose pull
Pulling elasticsearch (elasticsearch:2.2.0)...
Pulling repository docker.io/library/elasticsearch
ERROR: Error while pulling image: Get https://index.docker.io/v1/repositories/library/elasticsearch/images: x509: certificate signed by unknown authority
Failed to run with docker-compose

我的公司有一个中间根CA,我怀疑是导致问题。有什么想法我应该如何配置Docker使用公司Root CA?

docker docker-compose
4个回答
11
投票

我通过在以下目录中添加CA root .crt文件来解决问题:/etc/docker/certs.d/docker.io

使用Unbuntu 14:04Docker version 1.10.0, build 590d5108解决docker-compose version 1.6.0, build d99cad6的步骤:

  • 在Internet Explorer中浏览到docker.io/library/elasticsearch并使用DER格式导出公司中间根CA证书
  • 在Ubuntu mkdir -p /etc/docker/certs.d/docker.io/
  • cp <cert from step one>.crt /etc/docker/certs.d/docker.io/
  • service docker restart
  • docker-compose pull现在工作和elasticsearch图像下载

更多信息:https://docs.docker.com/engine/security/certificates/


1
投票

在本机docker(我在mac上),这可以通过添加到不安全的注册表配置来解决。首选项>高级>不安全的注册表


1
投票
  1. 使用Firefox导出SSL证书。 在Firefox中点击URL 如果您在URL栏上看到警告或锁定,请单击高级。 导出证书(在详细信息选项卡中) 我们假设证书文件名是your.ssl.server.name.crt
  2. 将CA证书复制到/usr/local/share/ca-certificates
  3. sudo update-ca-certificates
  4. sudo service docker restart

0
投票

这可能发生在可能没有根CA签名证书的本地或用户注册表上(这些可能是自签名的)。您可以使用以下步骤使用这些注册表:

  1. sudo systemctl edit docker.service
  2. 像这样添加注册表:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd <some params...> --insecure-registry <your registry here> <other params...>
  1. 保存文件。
  2. 使用sudo systemctl daemon-reload重新加载配置
  3. sudo systemctl restart docker.service重启Docker
© www.soinside.com 2019 - 2024. All rights reserved.