基本上,我在连接到我尝试使用最新的 Nexus 预览版创建的 docker 注册表时遇到了问题。首先,我在运行 Ubuntu 14.04 trusty 的 MS Azure 云服务器上安装了 Sonotype Nexus 3 Preview。我们称这个位置为
my-azure-site.cloudapp.net:8443/nexus进入 Nexus UI。我从头到尾都在使用本指南 -https://books.sonatype.com/nexus-book/3.0/reference/index.html https://books.sonatype.com/nexus-book/3.0/reference/index.html
所以我知道连接到远程 Docker 存储库的唯一方法是通过 SSL,因此我在 nexus 中启用了 HTTPS,如使用 8443 端口所示。然后,我创建了一个名为 docker-hub 的 Docker 代理存储库,以便能够从 Docker Central Hub 中提取映像,如指南第 8.3 节所述。 Nexus 显示该存储库的 URL 为
https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-hub/ https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-hub/
然后我创建了一个名为 docker-mySoftware 的私有托管存储库,其 HTTPS docker 连接器端口为18444如指南第 8.4 节所述,Nexus 将 URL 显示为
https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-mySoftware/ https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-mySoftware/
然后我创建了一个名为 docker-all 的组存储库,其中包含上述 2 个内容,其 HTTPS docker 连接器端口为18443如指南第 8.5 节所述,Nexus 将 URL 显示为
https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/ https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/
起初,当我尝试运行第 8.7 节中概述的以下命令来使用我的本地 docker 客户端(也在我的物理笔记本电脑上运行 ubuntu)测试代理时
sudo docker 搜索 my-azure-site.cloudapp.net:18443/postgres
我收到消息说 my-azure-site.net:18443 有一个 ca 证书,但没有 my-azure-site.cloudapp.net:18443,因此我使用 keytool 重新创建了证书以包含 cloudapp 部分。现在当我重试时我得到了
来自守护程序的错误响应:意外的状态代码 404
顺便说一句,我忘了提及我事先在 Azure 控制台上打开了端口 18444 和 18443。
我尝试重新创建存储库、重新索引代理存储库、在 nexus azure 云上重新创建证书,使用
sudo docker -d --insecure-registry my-azure-site.cloudapp.net:18443
在我的 docker 客户端计算机上希望能够绕过所有这些认证内容,但仍然没有运气。我尝试了不同的 URL 组合,例如
sudo docker 搜索 my-azure-site.cloudapp.net:18443/nexus/postgres 和https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/nexus https://my-azure-site.cloudapp.net:8443/nexus/repository/docker-all/nexus etc.