docker 服务创建未找到图像

docker service create doesn't find image

当我 运行 docker service create --mode global foo myrepo/foo-img:0.1 时,它会启动服务,但如果 foo-img:0.1 没有存在于群中的一个节点上,该节点发出以下错误:

<containerid>   \_ foo    myrepo/foo:0.1  <snip>  "No such image: myrepo/foo-img:0.1"

如果我在每个节点上拉 myrepo/foo-img:0.1 那么它工作正常。

除了在 swarm 中的每个节点上拉取映像之外,是否有解决此问题的方法?

其实答案很简单。使用 --with-registry-auth 参数。此参数使用与当前会话相同的身份验证。因此,要完成这项工作,您只需:

# docker login -u xxx -pass yyy https://myrepo.com
# service create --with-registry-auth foo myrepo.com/foo-img:0.1

假设您成功登录,该服务会根据需要从仓库中拉取镜像到各个节点。不确定幕后究竟发生了什么,但它适用于部署到集群中当前的所有节点!感谢 github/docker!

的朋友们的帮助