twe*_*200 55 docker docker-compose docker-swarm
有没有人知道是否有办法让docker swarm重新启动一个服务,这是一个堆栈的一部分而不重新启动整个堆栈?
Mat*_*att 69
docker stack deploy
再次为我做的是更新服务的方法.正如Francois的回答,以及我自己的经验,这样做只会更新需要更新的服务.
但有时候,测试东西只重新启动单个服务似乎更容易.在我的情况下,我必须清除卷并更新服务以启动它,就像它是新鲜的.我不确定我将描述的方法是否有缺点.我在我的开发堆栈上测试了它,它对我很有用.
获取要拆除的服务ID,然后使用docker service update --force <id>
强制更新服务,从而有效地重新部署它
$ docker stack services <stack_name>
ID NAME ...
3xrdy2c7pfm3 stack-name_api ...
$ docker service update --force 3xrdy2c7pfm3
Run Code Online (Sandbox Code Playgroud)
该--force
标志将强制服务更新,导致它重新启动.
Luk*_*e W 49
缩放为0并备份:
docker service scale myservice=0
docker service scale myservice=10
Run Code Online (Sandbox Code Playgroud)
Fra*_*rel 10
看docker stack
文档:
扩展说明
从群组上的compose或dab文件创建和更新堆栈
从这篇博客文章:docker stack
以类似的方式工作docker compose
.它是幂等的.如果已经部署了堆栈,docker stack deploy
则将仅重新启动具有更新的摘要或标记的服务:
根据我的经验,当我再次部署相同的堆栈并更改一个服务时,只会重新启动更新的服务.
但是......对于考虑到的更改似乎有一些限制(有些报告带有图像标记的错误),所以试一试,看看是否按预期工作.
service update
如果您希望确保只有目标服务(如果已更新更新),您也可以使用.
归档时间: |
|
查看次数: |
37314 次 |
最近记录: |