【问题标题】:docker service create doesn't find imagedocker service create 找不到图像
【发布时间】:2016-08-13 06:07:55
【问题描述】:

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

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

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

除了在集群中的每个节点上拉取图像之外,还有其他解决方法吗?

【问题讨论】:

  • 启动容器,节点需要镜像。因此,所有节点都需要访问可以下载的存储库。
  • 正确。但是,所有节点都可以访问私有存储库,问题是它们没有或无法提取图像。我正在将 --with-registry-auth 参数视为一种可能的解决方案,但我没有看到任何有关如何使用它指定凭据的文档

标签: docker docker-swarm


【解决方案1】:

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

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

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

【讨论】:

  • 太棒了!有没有办法使用管理器上的图像,而不是作为回购 - 只要你知道吗?
  • 我不知道另一种方式。我最初的调查是尝试做你建议的事情,但没有任何运气。如果你碰巧找到另一个,请分享。
猜你喜欢
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
相关资源
最近更新 更多