Faire docker stack deploy
à nouveau pour moi, c'est le moyen de mettre à jour les services. Comme Réponse de François De plus, d'après mon expérience, cela ne met à jour que les services qui doivent l'être.
Mais parfois, il semble plus facile, lors des tests, de ne redémarrer qu'un seul service. Dans mon cas, j'ai dû effacer le volume et mettre à jour le service pour le démarrer comme s'il était neuf. Je ne suis pas sûr qu'il y ait un inconvénient à la méthode que je vais décrire. Je l'ai testée sur ma pile de développement et elle a très bien fonctionné pour moi.
Obtenez l'identifiant de service que vous voulez démolir, puis utilisez docker service update --force <id>
pour forcer la mise à jour du service, ce qui le redéploie effectivement.
$ docker stack services <stack_name>
ID NAME ...
3xrdy2c7pfm3 stack-name_api ...
$ docker service update --force 3xrdy2c7pfm3
Le site --force
forcera le service à se mettre à jour, ce qui entraînera son redémarrage.