gpt4 book ai didi

docker - 无法推送到 Artifactory Docker Registry

转载 作者:行者123 更新时间:2023-12-02 20:37:58 25 4
gpt4 key购买 nike

Docker 注册表配置为支持多个 Docker 注册表,如 https://jfrog.com/knowledge-base/how-do-i-access-multiple-artifactory-docker-repositories-from-a-single-url/ 所述。 .这使我们能够设置本地和远程存储库,只需登录到虚拟存储库即可推送和拉取图像。

从 Artifactory 的 5.1.3 版本升级到 6.0.1 后,我们不再能够推送到我们的虚拟存储库或本地存储库。我们可以登录到存储库并从中提取。

docker push mycompany.com:6555/docker-virtual/helloworld
The push refers to repository [mycompany.com:6555/docker-virtual/helloworld]
2b8cbd0846c5: Pushing 1.848kB/1.848kB
http: no Host in request URL

在 Artifactory 上,我们在 artifactory.log 中看到
2018-06-05 08:15:19,879 [ajp-nio-8019-exec-2] [DEBUG] (o.a.w.s.AccessFilter:305) - Header authentication org.artifactory.security.props.auth.PropsAuthenticationToken@2473d3d9: Principal: USERHERE; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@7798: RemoteIpAddress: 172.24.142.95; SessionId: null; Granted Authorities: admin, user found in cache.2018-06-05 08:15:19,879 [ajp-nio-8019-exec-2] [DEBUG] (o.a.w.s.RepoFilter  :100) - Entering request POST (172.24.142.95) /api/docker/docker-virtual/v2/helloworld/blobs/uploads/.
2018-06-05 08:15:19,880 [ajp-nio-8019-exec-2] [DEBUG] (o.a.w.s.RepoFilter :337) - Identified'/api/lfs' in incoming ServletRequest path. Wrapping it with a GitLfsMalformedRequestWrapper
2018-06-05 08:15:19,880 [ajp-nio-8019-exec-2] [DEBUG] (o.a.w.s.RepoFilter :380) - Returning fixed Docker Content-Type header content-type
2018-06-05 08:15:19,880 [ajp-nio-8019-exec-2] [DEBUG] (o.a.a.m.ModuleInfoUtils:348) - Could not transform helloworld/_uploads to a valid module info.
2018-06-05 08:15:19,880 [ajp-nio-8019-exec-2] [DEBUG] (o.a.a.m.ModuleInfoUtils:348) - Could not transform helloworld/_uploads to a valid module info.
2018-06-05 08:15:19,881 [ajp-nio-8019-exec-2] [DEBUG] (o.a.r.RealRepoBase :79) - docker-virtual is not a valid module info - 'helloworld/_uploads': not enforcing snapshot/release policy.
2018-06-05 08:15:19,881 [ajp-nio-8019-exec-2] [DEBUG] (o.a.w.s.RepoFilter :188) - Exiting request POST (172.24.142.95) /api/docker/docker-virtual/v2/helloworld/blobs/uploads/

在 access.log 我们看到
2018-06-05 08:21:17,525 [DENIED LOGIN]  for NA/172.24.142.95. 

即使我们已经登录并且可以提取我们的图像。

在 request.log 我们看到
20180605082119|19|REQUEST|IPHERE|USERNAMEHERE|POST|/api/docker/docker-virtual/v2/helloworld/blobs/uploads/|HTTP/1.1|202|0
20180605082124|10|REQUEST|IPHERE|USERNAMEHERE|POST|/api/docker/docker-virtual/v2/helloworld/blobs/uploads/|HTTP/1.1|202|0
20180605082135|10|REQUEST|IPHERE|USERNAMEHERE|POST|/api/docker/docker-virtual/v2/helloworld/blobs/uploads/|HTTP/1.1|202|0
20180605082150|10|REQUEST|IPHERE|USERNAMEHERE|POST|/api/docker/docker-virtual/v2/helloworld/blobs/uploads/|HTTP/1.1|202|0

最佳答案

您引用的文章和您使用的方法搭载了 Artifactory 中 Docker V2 API 的未记录 API 行为。具体来说,它依赖于 POST “blob/uploads”端点(您从日志中包含的端点)从请求 Host header (Apache 根据请求路径设置)中提取存储库名称并重建相邻的 Location 响应 header ,由 Docker 客户端在后续请求中用于上传 blob 内容。

如果考虑到 Artifactory 中的 Docker 实现在最近的版本中经历了一些更改并且现在支持“无代理”配置这一事实,这个解决方案不再有效,我不会感到非常惊讶。事实上,您现在可以使用与将图像推送和拉取到 Artifactory 相同的方法,而无需在反向代理上配置任何此类黑客。我强烈建议您查看此部分并考虑弃用您当前的解决方案:

https://www.jfrog.com/confluence/display/RTF/Configuring+a+Reverse+Proxy#ConfiguringaReverseProxy-UsingDirectAccess

我们仍然建议在 Artifactory 之前使用反向代理服务器(用于 SSL 终止和其他通用性能考虑),但由于您已经将存储库名称作为 docker 标签的一部分包含在内,因此过渡对您来说应该非常顺利。

我希望这有帮助。

关于docker - 无法推送到 Artifactory Docker Registry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com