I’m guessing something just changed/broke in the Swarm 1.2.1 release yesterday. I can no longer pull images from from our private registry which requires a basic auth username/password. Suddenly I’m getting errors like this:
$ docker pull myreg.company.com/myorg/myrepo:mytag ip-10-1-2-208: Pulling myreg.company.com/myorg/myrepo:mytag... : Error: image cyberu/cyberui not found ip-10-1-2-81: Pulling myreg.company.com/myorg/myrepo:mytag... : Error: image cyberu/cyberui not found ip-10-1-2-209: Pulling myreg.company.com/myorg/myrepo:mytag... : Error response from daemon: Get https://myreg.company.com/v2/myorg/myrepo/manifests/mytag: no basic auth credentials ip-10-1-2-82: Pulling myreg.company.com/myorg/myrepo:mytag... : Error: image cyberu/cyberui not found ip-10-1-2-207: Pulling myreg.company.com/myorg/myrepo:mytag... : Error: image cyberu/cyberui not found ip-10-1-2-83: Pulling myreg.company.com/myorg/myrepo:mytag... : Error response from daemon: Get https://myreg.company.com/v2/myorg/myrepo/manifests/mytag: no basic auth credentials Error response from daemon: Get https://myreg.company.com/v2/myorg/myrepo/manifests/mytag: no basic auth credentials
The difference in errors from some of the nodes is because I added the --disable-legacy-registry
option to the daemon on those boxes to see if that was the issue. But that clarified that the basic auth credentials are somehow not being used.
Things I’ve tried:
- I’ve got my credentials in
~/.docker/config.json
both on the local manager node and the Swarm node machines. - I saw an article about setting the
X-Registry-Auth
HTTP header via~/.docker/config.json
- The pull succeeds if I
ssh
into each node and run the pull locally
Anyone know how stored credentials are picked up, passed along, and used with Swarm? What processes/containers actually have (or attempt) access to ~/.docker/config.json
?
I’m suspecting there’s a bug somewhere since it was authenticating and pulling images successfully before the latest swarm image hit.