登录尝试Nexus OSS Docker repo投掷404

时间:2017-07-21 19:30:06

标签: docker kubernetes nexus

我们正在尝试在Kubernetes群集中的Nexus OSS(v3.3.2-02)中设置Docker存储库,并且在登录时遇到问题。我们打算使用以下配置为DockerHub设置代理,私人仓库和组合仓库将两者捆绑在一起

托管

代理 enter image description here

enter image description here

给我们以下列表:

enter image description here

但是当我尝试登录存储库时,它似乎试图将我转发到/v2端点,这会导致404错误:

> docker login -u <user> -p <pass> https://repo.myhost.com:443
Error response from daemon: login attempt to https://repo.myhost.com:443/v2/ failed with status: 404 Not Found

我想补充一点,我们在同一个实例中设置了Maven和NPM存储库并且它们正在工作,所以看起来Nexus本身没问题,但是Docker配置有问题。

我不知道为什么此请求在尝试登录时尝试将我发送到/v2端点。我错过了什么?

3 个答案:

答案 0 :(得分:0)

在我刚刚运行的实验中(docker-machine,virtualbox,macOS),当服务器为1.13.1时(与docker cli一样),它从{{1向下/v2,如下:

/v1

但在我将服务器升级到17.06.0-ce(仍然是1.13.1 cli)之后,它只尝试level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /v1.26/version" level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /v1.26/version" level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /v1.26/info" level=debug msg="Calling POST /v1.26/auth" level=debug msg="attempting v2 login to registry endpoint https://192.168.2.103:9999/v2/" level=info msg="Error logging in to v2 endpoint, trying next endpoint: Get https://192.168.2.103:9999/v2/: EOF" level=debug msg="attempting v1 login to registry endpoint https://192.168.2.103:9999/v1/" level=info msg="Error logging in to v1 endpoint, trying next endpoint: Get https://192.168.2.103:9999/v1/users/: dial tcp 192.168.2.103:9999: getsockopt: connection refused" level=error msg="Handler for POST /v1.26/auth returned error: Get https://192.168.2.103:9999/v1/users/: dial tcp 192.168.2.103:9999: getsockopt: connection refused" 然后退出:

/v2

所以答案似乎是要么需要教Nexus正确响应level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /v1.30/version" level=debug msg="Calling GET /_ping" level=debug msg="Calling GET /v1.30/info" level=debug msg="Calling POST /v1.30/auth" level=debug msg="attempting v2 login to registry endpoint https://192.168.2.103:9999/v2/" level=info msg="Error logging in to v2 endpoint, trying next endpoint: Get https://192.168.2.103:9999/v2/: tls: oversized record received with length 21584" level=error msg="Handler for POST /v1.30/auth returned error: Get https://192.168.2.103:9999/v2/: tls: oversized record received with length 21584" 端点(因为它确实应该已经做了),或者将dockerd降级回到说{的版本{1}} api如果这是您之后的行为

答案 1 :(得分:0)

不确定这是否有帮助,但是基于浏览器的URL中没有端口号,可以使用我的凭据登录。下面是基于浏览器的示例网址。

https://nexus.mysite.net/

但是我必须输入以下内容

docker login -u -p https://nexus.mysite.net/

我受到以下欢迎

守护程序的错误响应:尝试登录https://nexus.mysite.net/v2/失败,状态为:404未找到

提供正确的端口号没有出现以上错误,我可以按如下所示从CLI登录。

docker login -u用户名-p密码https://nexus.mysite.net:7000

(在我的情况下,正确的端口号是7000)。

希望这会有所帮助。

答案 2 :(得分:0)

Docker需要非常特定的URL布局,并且不允许任何上下文URL,因此需要Docker连接器以允许Docker客户端连接到NXRM。屏幕快照显示您已在端口444上为Docker托管存储库配置了Docker连接器,但终端捕获显示您正在尝试在不是Docker连接器端口的端口443上进行连接。您所显示的错误消息表明您的NXRM服务器确实在端口443上运行,但是由于Docker的工作方式,您需要使用端口444对其进行访问。请尝试:docker login -u <user> -p <pass> https://repo.myhost.com:444,以便它尝试使用Docker连接器端口。另外,最好运行最新版本的Nexus。