如何在docker群中重新启动多个容器

我目前有4个不同的主机在我的docker设置8容器。

ubuntu@ip-192-168-1-8:~$ docker service ls ID NAME MODE REPLICAS IMAGE yyyytxxxxx8 mycontainers global 8/8 myapplications:latest 

在服务上运行ps -a产生以下结果。

 ubuntu@ip-192-168-1-8:~$ docker service ps -a yy NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS mycontainers1 myapplications:latest: ip-192-168-1-5 Running Running 3 hours ago \_ mycontainers2 myapplications:latest: ip-192-168-1-6 Running Running 3 hours ago \_ mycontainers3 myapplications:latest: ip-192-168-1-7 Running Running 3 hours ago \_ mycontainers4 myapplications:latest: ip-192-168-1-8 Running Running 3 hours ago \_ mycontainers1 myapplications:latest: ip-192-168-1-5 Running Running 3 hours ago \_ mycontainers2 myapplications:latest: ip-192-168-1-6 Running Running 3 hours ago \_ mycontainers3 myapplications:latest: ip-192-168-1-7 Running Running 3 hours ago \_ mycontainers4 myapplications:latest: ip-192-168-1-8 Running Running 3 hours ago 

我的问题是我如何执行重新启动使用服务ID的所有容器? 我不想手动login到每个节点并执行重新启动。

在Docker 1.12.x的最新稳定版本中,可以通过更新服务configuration来重新启动容器,但即将发布的docker 1.13.0中,即使服务设置未更改,也可以通过指定--force标志,容器将被重新启动。 如果你不介意使用1.13.0 RC4,你可以现在就做。

 $ docker service update --force mycontainers 

更新:Docker 1.13.0已经发布。

https://github.com/docker/docker/releases/tag/v1.13.0

更新现有服务,swarm将重新创build所有容器。 例如,您可以简单地更新服务的属性以重新开始归档。