【问题标题】:docker client can't read from both "docker private registry" and "online docker registry" if custom ssl certificate are used如果使用自定义 ssl 证书,docker 客户端无法从“docker private registry”和“online docker registry”中读取
【发布时间】:2015-01-11 12:51:54
【问题描述】:

Docker 版本 1.2.0,构建 2a2f26c/1.2.0,

docker 注册表 0.8.1

我在 cenots7 上设置了 docker 私有注册表并创建了我的自定义 ssl 证书。当我尝试使用 https 访问我的 docker 注册表时,我得到x509: certificate signed by unknown authority。我通过将证书文件放在"/etc/pki/tls/certs" 下找到了解决方案,然后执行

"update-ca-trust"

"service docker restart"

现在它开始读取我的证书。我可以登录并拉取并推送到 docker 私有注册表

"https://localdockerregistry"

现在当我尝试从在线 docker 注册表(https://index.docker.io/v1/search?q=centos) 中读取时

"docker search centos"

我明白了

"Error response from daemon: Get https://index.docker.io/v1/search?q=centos: x509: certificate signed by unknown authority"

我从 Firefox 浏览器导出 docker.io 证书并将其放在“/etc/pki/tls/certs”下,然后执行 "update-ca-trust""service docker restart" 但同样的错误。看起来 docker 客户端无法决定将哪个证书用于哪个存储库。

关于如何在使用您自己的 docker 私有注册表时为在线 docker 注册表修复“x509:由未知机构签名的证书”的任何想法。

【问题讨论】:

    标签: docker


    【解决方案1】:

    放置证书的正确位置是在运行您的 docker 守护程序(而不是客户端)的机器上,位于以下位置:/etc/docker/certs.d/my.registry.com:5000/ca.crt 其中 my.registry.com:5000 是您的地址私有注册表和:5000 是您的注册表可以访问的端口。如果路径 /etc/docker/certs.d/ 不存在,您应该创建它——这是 Docker 守护程序默认的位置。

    这样您就可以为每个私有注册表拥有一个私有证书,而不会影响公共注册表。

    这是http://docs.docker.com/reference/api/registry_api/上的文档

    【讨论】:

    • 对不起,我忘了前面提到,我在 nginx 后面运行 docker 注册表。所以 nginx 正在监听 443 并将请求转发到 localhost:5000。那么我需要在docker上放置证书吗?其次,我正在运行 docker-registry 0.8.1 标签。并使用 pip install 安装,因此它不会作为服务运行并且没有目录 /etc/docker/certs.d/。我需要手动创建吗?谢谢
    • 嗨,安迪,我有一个在 docker 容器内运行的 docker (v1) 注册表。如何让它使用 TLS?我是否需要将运行 docker 镜像的机器上的证书复制到注册表中,或者使用 Dockerfile 将证书复制到运行注册表的 docker 容器中?
    【解决方案2】:

    我在使用 StartSSL 证书的 Nginx 代理后面的容器中运行 docker 注册表时遇到问题。

    在这种情况下,您必须将中间 ca 证书附加到 nginx ssl 证书,请参阅https://stackoverflow.com/a/25006442/1130611

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2017-09-29
      • 2017-07-18
      • 1970-01-01
      • 2016-05-03
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多