如何设置 Nexus OSS 以使用 docker 代理凭据

问题描述

我已经购买了一个 Docker 帐户并使用 Nexus OSS 设置了我的 Docker 代理,如下所示:

Repositories -> Create a Docker Proxy -> 选择 Use Docker Hub (Remote Storage : std::setfill()) -> with Authentication Enabled(提供 Docker 的用户名/密码)

在我的客户端中,我使用以下命令将其配置为使用我的 Nexus 作为注册表镜像:

systemctl edit docker

然后补充:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --registery-mirror=https://myprivatenexus.com

然而,当我尝试在我的客户端中使用“docker pull”时,我会遇到烦人的“Docker Hub Pull Limits”错误

是否可以在 Nexus 中使用我的 Docker 帐户,或者我应该尝试其他方法吗?

https://registry-1.docker.io

enter image description here

解决方法

我们在类似的环境中在工作中使用了 Nexus。您的连接配置看起来像我们的。对我来说,客户端镜像配置看起来很奇怪。如果我在没有任何配置的连接器的情况下访问 nexus 存储库,我必须在客户端配置整个上下文路径。

截图后:https://YOUR_SERVER/repository/DockerHub

如果您要连接专用的存储库连接器,例如http/8088,然后你可以用

配置你的客户端

http://YOUR_SERVER:8088

The documentation from sonatype 描述相同:

为用户界面配置的上下文路径不会影响 Docker 使用的存储库连接器 URL。例如。如果您的存储库管理器实例配置为在 http://localhost:8081/nexus 而不是默认的根上下文 http://localhost:8081/ 上可用,则 Docker 存储库的 URL 仍将仅使用配置的端口存储库并省略 URL 中的上下文路径。这是 Docker 不支持注册表 API 中的上下文路径这一事实的副作用。