私有结点上的 docker 登录 => 来自守护程序的错误响应:尝试登录 http://ip:port/v2/ 失败,状态:404 未找到



我尝试将 docker 镜像推送到我的私有 Nexus 3 注册表。

在推送之前,我尝试验证执行:docker login nexus_host:nexus_port

但是我收到以下错误消息:

来自守护程序的错误响应:尝试登录 http://nexus_hostnexus_port/v2/失败 状态:404 未找到

我的 Nexus 使用 HTTP,因此请将其添加到 docker 不安全注册表列表中。

Nexus
  • 版本 : Nexus 仓库管理器 OSS 3.9.0-01
  • 码头工人版本 : 17.09.1-ce (视窗 10)

编辑 (08/03/2018) :

我使用托管的码头工人存储库。我应该使用 HTTP 连接器吗?

存储库配置:格式 : docker
类型 : 托管
网址 : http://192.168.0.90:8082/repository/docker-repo/
HTTP 连接器端口 :
1111

登录尝试 :

docker login 192.168.0.90:8082=> 来自守护程序的错误响应:登录尝试 http://192.168.0.90:8082/v2/失败,状态:404 未找到

docker login 192.168.0.90:1111=> 来自守护程序的错误响应:获取 https://192.168.0.90:1111/v2/:拨打 tcp 192.168.0.90:1111:getsockopt:连接被拒绝

登录到 docker 存储库的正确命令是docker login 192.168.0.90:1111,因为您已在端口1111上启用了 HTTP 连接器。

请确保您已在 docker 存储库设置中选中强制基本身份验证,并且docker login使用与访问 Nexus 存储库管理器实例相同的凭据。

如果上述方法没有帮助,那么您应该关注导致连接被拒绝的原因 - 请检查您和 Nexus 阻止端口1111(您的 docker 存储库连接器端口)之间是否有任何防火墙。

在主机中运行容器时,与应用程序通信的唯一方法(从容器获取 bash 除外)是在容器运行之前公开的端口。

您只需要在使用以下命令运行容器之前公开所选端口:

docker run -d -p 8081:8081 -p 8082:8082 --name nexus sonatype/nexus3

第一个端口 (8081) 用于连接本身,第二个端口 (8082) 用于配置中的 http 连接器。

就是这样!

这是关于这个主题的一个很好的指南: https://www.ivankrizsan.se/2016/06/09/create-a-private-docker-registry/

最新更新