如何将https与我当地的docker注册表(sonatype nexus)进行对话

时间:2017-08-02 08:51:45

标签: docker docker-registry sonatype

从此处的文档:https://books.sonatype.com/nexus-book/3.0/reference/docker.html

我可以得出结论,除非我通过https公开它,否则我无法创建私人docker注册表。

  

Docker依赖于使用SSL连接到存储库的安全连接。因此,需要通过HTTPS 将存储库管理器公开给您的客户端工具。这可以通过外部代理服务器配置,也可以直接与存储库管理器配置。有关更多详细信息,请参见第5.9.4节“入站SSL - 配置为通过HTTPS提供内容”。

我已完成所有这些步骤(使用https://localhost:5001上的反向代理转发到带有http连接器的nexus代理注册表)。但是现在我想从我的本地注册表开始,我找不到通过https访问它的方法。

以下命令在此处描述:https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry

docker pull localhost:5001/hello-world

返回:

  

来自守护程序的错误响应:解析HTTP 400响应正文时出错:无效字符'<'寻找值的开头:" \ n \ n400错误请求\ n \ n

错误请求

\ n

您的浏览器发送了此服务器无法理解的请求。
\ n \ n \ n \ n \原因:您正在向支持SSL的服务器端口发送纯HTTP。
\ n \ n而是使用HTTPS方案访问此URL。
\ n

\ n \ n"

当我尝试这个时:

docker pull https://localhost:5001/hello-world

我明白了:

  

无效的参考格式

1 个答案:

答案 0 :(得分:0)

解决方法是:

为您通过

访问存储库的代理拥有有效的SSL证书

创建自签名证书并手动将其插入Windows Trusted root authorities certificates 您要从中访问注册表的计算机。

这应解决任何问题和相关信息。尝试访问https://proxyUrl:5000/v2,您现在应该获得与以前不同的消息,并且能够拉动并推送到注册表。