我如何代理内部Nexus Docker存储库?

我们已经部署了Sonatype Nexus 3作为我们的内部工件存储库,它的工作非常好…现在我们已经完成了我们的临时环境中的概念validation,我们已经在我们的一些远程部署了2个额外的Nexus服务器networking,以减less广域网上的带宽利用率。 因此,在“卫星”nexus服务器上,我创build了一个Proxy Docker repo,用于代理我们的主Nexus服务器。 我遇到的问题是,当我试图从一个卫星Nexus回购一个容器图像时,它找不到任何容器。 当我而不是我们docker search ,我可以看到容器,但他们列在错误的主机名!

 docker search --limit 50 satellite.mycompany.com/mycontainer NAME DESCRIPTION STARS OFFICIAL AUTOMATED primary.mycompany.com/mycontainer:0.0.1 0 primary.mycompany.com/mycontainer:0.0.2 0 primary.mycompany.com/mycontainer:0.0.3 0 primary.mycompany.com/mycontainer:0.0.4 0 primary.mycompany.com/mycontainer:latest 0 

有谁知道我可以解决这个问题?

使用3.0.2-02的最新版本,可以解决此问题。您可以将主要Nexus服务器上显示的存储库的URL作为您的远程存储位置:

 http(s)://<nexus host>/repository/<docker repo> 

然后,configuration所有的东西,你会期望和它的作品。 一个例外是,通过docker search “search”将显示来自上游回购的主机名标签。 例如:

 docker search satellite.docker.mycompany.com/my-image 

将返回:

 primary.docker.mycompany.com/my-image 

然而,Docker拉,工作得很好。