docker service create 找不到图像

标签 docker docker-swarm

当我运行 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 ,那么它工作正常。

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

最佳答案

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

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

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

关于docker service create 找不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38899074/

相关文章:

bash - 在docker创建时运行bash客户端以设置环境变量

elasticsearch - 在单节点docker swarm上部署ELK失败

ssl - Docker 群 TLS 无法验证挂起的节点

Docker: `docker run` 和 `docker service` 之间的区别

docker - 如何将Docker run命令转换为Swarm命令?

mysql - Docker Compose volume 不为 mysql 镜像挂载

linux - Docker daemon.json 日志记录配置无效

Docker:在 Dockerfile 中设置容器名称

java - Dockerized Zuul 网关无法连接到 dockerized Eureka 服务器

docker - 使用compose将容器部署到docker swarm:发布不允许发布其他属性