使用nexus 3代理私有docker注册表

问题描述 投票:2回答:1

是否可以使用nexus oss 3代理在docker发行版上运行的私有docker注册表?

我能够成功代理docker hub,但是当我尝试代理我自己的内部注册表时,我最终得到的图像未找到错误。

2016-08-31 15:58:21,457+0000 WARN  [qtp331814152-140] admin org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/company-npm/images: 404 - org.sonatype.nexus.repository.docker.internal.V1Exception$ImagesNotFound: images not found
2016-08-31 15:58:30,764+0000 WARN  [qtp331814152-140] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/library/company-java/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception: manifest unknown
2016-08-31 15:58:30,811+0000 WARN  [qtp331814152-51] admin org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/company-java/images: 404 - org.sonatype.nexus.repository.docker.internal.V1Exception$ImagesNotFound: images not found
2016-08-31 15:58:46,379+0000 WARN  [qtp331814152-164] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/library/company-java/manifests/6.0.0: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception: manifest unknown

该功能的文档似乎并未表明是否支持此功能。

nexus
1个回答
1
投票

我对Nexus 3.0.1-01也有同样的问题。对我来说,问题归结为命名空间。当命名空间留空时,Nexus会为所有存储库访问命令插入/ library命名空间。见https://books.sonatype.com/nexus-book/3.0/reference/docker.html第9.8节。

例如,如果我将图像推送到托管存储库:

docker push my-registry.com:5000/myimage:latest

代理注册表将图像查找为:

docker pull my-registry.com:5000/library/myimage:latest

这当然不存在。 (如果Nexus会在图像推送时自动添加/ library命名空间,或者至少在repo级别将其设置为可配置选项,那将是非常好的)。

如果您要执行以下操作:

docker push my-registry:5000/library/myimage:latest

甚至:

docker push my-registry:5000/mynamespace/myimage:latest

您的代理将能够找到图像。

docker pull my-proxy-registry:5000/mynamespace/myimage:latest
© www.soinside.com 2019 - 2024. All rights reserved.