重新启动 docker swarm 堆栈中的一项服务

新手上路,请多包涵

有谁知道是否有办法让 docker swarm 重新启动一个属于堆栈的服务而不重新启动整个堆栈?

原文由 tweeks200 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

对我来说再次执行 docker stack deploy 是更新服务的方法。正如 弗朗索瓦的回答,以及我自己的经验,这样做只会更新需要更新的服务。

但有时,在测试东西时只重启一个服务似乎更容易。就我而言,我必须清除卷并更新服务才能像新鲜一样启动它。我不确定我将描述的方法是否有缺点。我在我的开发堆栈上对其进行了测试,它对我来说非常有用。

获取您要拆除的服务 ID,然后使用 docker service update --force <id> 强制更新有效地重新部署它的服务

$ docker stack services <stack_name>
ID                  NAME              ...
3xrdy2c7pfm3        stack-name_api    ...

$ docker service update --force 3xrdy2c7pfm3

--force 标志将强制服务更新导致它重新启动。

原文由 Matt 发布,翻译遵循 CC BY-SA 3.0 许可协议

缩放到 0 并备份:

 docker service scale myservice=0
docker service scale myservice=10

原文由 Luke W 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题