当我运行docker service创建--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,那么它可以正常工作。
除了在群组中的每个节点上拉图像外,是否有解决方法?
答案 0 :(得分:7)
答案其实非常简单。使用--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的帮助!