My docker client/server version is:
$ 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
Would like to use artifactory to host dockers. When running
docker login
getting:
Unsupported docker v2 repository request for 'artifactory'
What does this error mean?
What V2 part is artifactory complaining on?
Ensure you have the following rewrite in your reverse proxy.
Nginx
rewrite ^/(v1|v2)/(.*) /api/docker/$repo/$1/$2;
Apache
RewriteCond "%{REQUEST_URI}" "^/(v1|v2)/"
This requirement is currently missing from the jfrog documentation, however it is documented if you go into HTTP settings and let artifactory generate the proxy config for you.
In addition to the error with reverse proxy, this message also appears when you try to push an image into a non-existent repository.
Look for HTTP 404 in Artifactory request.log
It is probable that v2 corresponds to Docker Registry API v2 (link).
This is the default API (version) for current Docker Engine clients.
I suspect (!) that your Artifactory Registry is using the older v1 API version and is balking at your docker client's attempt to use v2 with it.
You ought be able to configure Artifactory to use Docker Registry API v2.
I'm unfamiliar with Artifactory and can provide no guidance for how to make this change but I'm confident it's your issue.