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

时间:2016-08-10 12:50:44

标签: docker nexus dockerhub

我们已经部署了Sonatype Nexus 3作为我们的内部工件存储库,它工作得很好......现在我们已经在我们的暂存环境中完成了我们的概念验证,我们在一些部署了2个额外的Nexus服务器我们的远程网络,以减少WAN上的带宽利用率。因此,在“卫星”nexus服务器上,我创建了一个代理Docker repo,用于代理我们的主要Nexus服务器。我遇到的问题是,当我试图从其中一个卫星Nexus repos中提取容器图像时,它找不到任何容器。当我代替我们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

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

然后,按照您的预期配置所有内容并且它可以正常工作。唯一的例外是&#34;搜索&#34; via docker search将显示来自上游仓库的主机名标签。例如:

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

将返回:

primary.docker.mycompany.com/my-image
然而,Docker pull工作得很好。