进行堆栈部署时如何重新启动 docker 堆栈中的服务?

问题描述 投票:0回答:1

我正在使用 docker swarm 和 docker compose 来支持 ~6 项服务。其中一项服务来自不经常更改的 docker 映像,但更改的是主机上的配置文件,我将其作为卷安装到容器中。

由于图像没有更改,因此当我执行新的

docker stack deploy
命令时,服务不会重新启动,并且不会拾取对配置文件的更改(因为配置文件仅在启动时读取) .

我目前所做的是

docker stack rm my-stack
杀死一切,然后
docker stack deploy my-stack
。我想这很好,但我想知道是否有更好的方法来强制服务重新启动,而不是杀死所有内容并在重新启动时有 20 秒的停机时间。

谢谢。

docker docker-compose docker-swarm
1个回答
0
投票

您可以使用带有 --force 标志的 docker service update 命令强制 Docker Swarm 服务更新并重新启动。这允许您触发特定服务的重新启动,而无需拆除整个堆栈。

docker service update --force <service_name>

这将迫使 Docker Swarm 更新服务,其中包括重新启动与该服务关联的容器。由于您对配置文件使用卷挂载,因此配置文件中的更改将在重新启动后反映在容器中。

© www.soinside.com 2019 - 2024. All rights reserved.