azure - 连接到 Azure VM 上的 Nexus 3 Preview 上存储的 Docker 注册表时出现问题

标签 azure docker repository registry nexus

基本上,我在连接到我尝试使用最新的 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

所以我知道连接到远程 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/

然后,我创建了一个名为 docker-mySoftware 的私有(private)托管存储库,其 HTTPS docker 连接器端口为 18444,如指南第 8.4 节所述,Nexus 将 URL 显示为

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/

首先,当我尝试运行第 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 没有 ca 证书,因此我使用 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等等

最佳答案

正如您正确识别的那样,设置上下文路径导致了问题。事实证明这是一个错误,现已修复。 Nexus 3 的下一个版本(Milestone 6)将包含该修复并允许您使用上下文路径。

但是请记住,上下文路径不会成为 Docker URL 的一部分,因为 docker 注册表格式以及 Docker 客户端都不支持上下文路径。因此,对于 Docker 的特定用法,您将继续使用记录的端口。

更新:里程碑 6 版本已发布并包含相关修复。

关于azure - 连接到 Azure VM 上的 Nexus 3 Preview 上存储的 Docker 注册表时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021350/

相关文章:

git - 尝试连接到 Bitbucket 的 fatal error

Azure - 服务端点和专用端点之间的简单区别

azure - Polybase:将特定日期/时间范围的数据从外部表加载到根 blob 文件夹

azure - nuget 命令在 azure devops 中 IncludeReferencedProjects

opencv - ffmpeg 失败 - 455 方法在此状态下无效

docker - 本地 DynamoDB : Unable to execute HTTP request — Connection refused

docker - 如何保持无限循环运行以不关闭Docker中的容器

ios - 如何设置 TheBigBoss 微调图标?

azure - 访问虚拟网络内的事件中心

git - 将 git 存储库历史的一部分移动到另一个存储库