不受支持的docker v2存储库对'artifactory'的请求意味着什么

时间:2019-05-10 00:36:35

标签: docker artifactory

我的Docker客户端/服务器版本为:

$ docker version
Client:
Version:           18.09.0
API version:       1.39
Go version:        go1.10.4
Git commit:        4d60db4
Built:             Wed Nov  7 00:49:01 2018
OS/Arch:           linux/amd64
Experimental:      false

Server: Docker Engine - Community
Engine:
Version:          18.09.0
API version:      1.39 (minimum version 1.12)
Go version:       go1.10.4
Git commit:       4d60db4
Built:            Wed Nov  7 00:16:44 2018
OS/Arch:          linux/amd64
Experimental:     false

想使用人工制品来托管码头工人。 运行时

docker login 

获取:

  

“ artifactory”不受支持的docker v2存储库请求

此错误是什么意思?

人工制品抱怨什么V2部分?

4 个答案:

答案 0 :(得分:1)

awk ' { split($0, a, "] +") gsub("[[,]", "", a[1]) printf("%s %.21f\n", a[1], a[2]) }' file 可能对应于Docker Registry API v2(link)。

这是当前Docker Engine客户端的默认API(版本)。

我怀疑(!)您的Artifactory Registry使用的是较旧的v1 API版本,并且对您的docker客户端尝试将v2与之配合使用感到沮丧。

您应该能够配置Artifactory以使用Docker Registry API v2。

我对Artifactory不熟悉,无法提供有关如何进行此更改的指导,但我相信这是您的问题。

答案 1 :(得分:1)

除了反向代理错误外,当您尝试将映像推送到不存在的存储库中时,也会出现此消息。

在Artifactory request.log中查找HTTP 404

答案 2 :(得分:0)

确保在反向代理中进行以下重写。

Nginx

  rewrite ^/(v1|v2)/(.*) /api/docker/$repo/$1/$2;

Apache

    RewriteCond "%{REQUEST_URI}" "^/(v1|v2)/"

该要求当前为missing from the jfrog documentation,但是如果您进入HTTP设置并让工件为您生成代理配置,则该要求已记录在案。

enter image description here

答案 3 :(得分:0)

我将添加:至少在版本7.5.7中,在Docker存储库设置中选中了“阻止推送图片清单v2模式1”,在我的情况下,取消选中它可以解决问题。