I deploy a docker swarm with 6 nodes. I built some images and I am trying to add them as services to the swarm. I have 5 microservices. When I run the on one host with docker-compose everything works fine. I run this command docker service create rate –with-registry-auth and I get the following message.
image rate:latest could not be accessed on a registry to record
its digest. Each node will access rate:latest independently,
possibly leading to different nodes running different
versions of the image.
yyf9m49xw3enwano1scr55ufc
overall progress: 0 out of 1 tasks
1/1: No such image: rate:latest
I run docker images and the rate image is appeared. rate is the repository name. I also tried with the image id but didn’t worked. The only images that I can add to swarm is images that is public.
2
Answers
There is an issue (https://github.com/moby/moby/issues/35187) on the Moby project about that.
If you tried already to set –with-registry-auth but didn’t solved it, you should manually login to each cluster worker node and pull the Docker images.
This error indicates you are trying to run an image that was never pushed to a registry. Push your images to a registry first. And then you can run them on any node in the cluster (which will pull any missing images from that registry). If the registry requires authentication to pull the image, then run
docker stack deploy --with-registry-auth ...
, but you must first push the image, and specific the pushed image name (which will not berate:latest
since you do not have access to push to the official library on Docker Hub).