使用 compose 文件在 swarm 模式下的 Docker 堆栈“--force-recreate”

viv*_*d4v 2 docker docker-compose

是否可以在 docker swarm 模式下使用 compose 文件强制重新创建容器?(我知道在 Dockerfile 中使用 HEALTHCHECK)

目前我必须先删除堆栈然后再次部署它 -

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP

$ docker stack rm MY-APP

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP

是否有可能将以上 3 个命令替换为 -

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP --force-recreate

BMi*_*tch 8

对于在该堆栈内创建的任何未更改的服务,您可以使用:

docker service update --force $service
Run Code Online (Sandbox Code Playgroud)

这将强制该服务的滚动更新。

要从堆栈重新创建所有内容,请输入您的堆栈名称,如下所示$stack

docker stack services -q $stack \
  | while read service; do
    docker service update --force $service
  done
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的指正。这就是我从记忆中得到的回答,他们可能永远不会有一个“-f”来表示强制,因为这也是其他命令中格式和过滤器的短标志。 (2认同)