我的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部分?
答案 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设置并让工件为您生成代理配置,则该要求已记录在案。
答案 3 :(得分:0)
我将添加:至少在版本7.5.7中,在Docker存储库设置中选中了“阻止推送图片清单v2模式1”,在我的情况下,取消选中它可以解决问题。