I\'m trying to pull docker images from a private repository hosted in Docker hub https://registry.hub.docker.com/u/myname/myapp like this using the docker remote API. The do
From this merged docker pull request, it seems that X-Registry-Auth
header should be a base-64 encoded json string of the form
{
'username': string,
'password': string,
'email': string,
'serverddress' : string
}
another reference link
I had the same issue.
Here's the "raw" AuthConfig object that you should use to pass the credentials:
{ "username":"your_registry_username_or_email", "password":"*****", "auth":"", // leave empty "email":"your@email.tld" }
You then have to "encode" it using Base64.
You didn't tell what language you're using, but if needed, this awesome site will let you encode your object in one click. Or, from a shell:
echo '{"username":"username","password":"*****", "auth":"","email":"your@email.tld"}' | base64
Then, just pass the encoded value to the header:
X-Registry-Auth: eyJ1c2VybmFtZSI6InlvdXJfcmVnaXN0cnlfdXNlcm5hbWVfb3JfZW1haWwiLCJwYXNzd29yZCI6IioqKioqIiwiYXV0aCI6IiIsImVtYWlsIjoieW91ckBlbWFpbC50bGQifQ==
Here's a working example using curl
and
curl -X POST -d "" \ -H "X-Registry-Auth: eyJ1c2VybmFtZSI6InlvdXJfcmVnaXN0cnlfdXNlcm5hbWVfb3JfZW1haWwiLCJwYXNzd29yZCI6IioqKioqIiwiYXV0aCI6IiIsImVtYWlsIjoieW91ckBlbWFpbC50bGQifQ==" \ 'http://192.168.60.11:8888/images/create?fromImage=r.getitlive.io/cool/repo&tag=latest'
Note : I couldn't make it work (yet) by putting the remote registry endpoint/URL in the serveraddress
field of the AuthConfig object. That's why I'm adding the registry host to the fromImage=
parameter.