Nexus Docker注册表-失败匿名拉取
我正在使用SonatypeNexus作为私有Docker注册表 虽然它可以与经过身份验证的用户一起工作,但尝试使用匿名用户提取图像是行不通的。这只发生在docker客户端上 使用Nexus UI(未登录),我可以浏览我的repo上的图像。但是,试图拉图像,我得到一个'未经授权的'错误 以下是Docker客户端与Nexus存储库之间的通信捕获流:Nexus Docker注册表-失败匿名拉取,docker,https,nexus,sonatype,Docker,Https,Nexus,Sonatype,我正在使用SonatypeNexus作为私有Docker注册表 虽然它可以与经过身份验证的用户一起工作,但尝试使用匿名用户提取图像是行不通的。这只发生在docker客户端上 使用Nexus UI(未登录),我可以浏览我的repo上的图像。但是,试图拉图像,我得到一个'未经授权的'错误 以下是Docker客户端与Nexus存储库之间的通信捕获流: 这很奇怪,因为启用了匿名访问,根据文档,我可能有一个Docker托管的注册表(通过HTTPs端口进行RW访问)和一个Docker组注册表,指向一个Do
这很奇怪,因为启用了匿名访问,根据文档,我可能有一个Docker托管的注册表(通过
HTTPs
端口进行RW
访问)和一个Docker组注册表,指向一个Docker托管的注册表,使用RO/Anonymous
访问。Docker注册表API要求对注册表访问进行身份验证,即使对于拉操作,Nexus 3也是如此。
Dockerhub始终需要一个访问令牌,即使对于拉取也是如此。
但是,您可以匿名从dockerhub中提取的原因是,它使用一个令牌服务器,自动向匿名用户提供访问令牌。
Nexus 3.0.1暂时无法提供此mecanism。
也许它将被实现()
因此,目前使用Nexus 3时,在提取图像之前始终需要登录(最终使用匿名用户时,您的权限将以这种方式设置)。此功能是在Nexus 3.6中添加的。根据:
Nexus让我很头疼,直到我找到了一个相当模糊的 声明不更改匿名域 因此,我遵循以下步骤来实现此功能:(在Nexus 3.19.1到3.23.0中进行了测试)
对于3.16.2,步骤1就足够了,并且在存储库配置中没有更多的“强制基本身份验证”复选框。对于3.17.0,我不得不将步骤2替换为:2。在安全>匿名下的主管理导航菜单上:选中“允许匿名用户访问服务器”,用户名=匿名,并将域更改为“Docker承载令牌域”,上述链接不再工作。新链接:甚至更新的信息:应该在docker(代理)中配置“docker索引”和“远程repostory的位置”吗?我认为这是不对的。既然docker(代理)应该代理一个外部注册表,是的(ui强迫你,afik)有一个单独的docker(托管)存储库,你不需要它。这解决了我的问题。我更改了匿名用户的域,这导致匿名访问失败。我无法通过更改设置来修复它。我不得不放弃nexus的安装并重新开始使用这些步骤,最终我得到了一个可以接受anon-pull的代理。首先,感谢你更新我的评论,很高兴我能贡献一些有用的东西xD。其次,tbh@Brady最初遇到了和我一样的问题,这反过来又促使我写了这篇文章,我很高兴我不是一个人