1. ホーム
  2. docker

[解決済み] docker swarmスタック内の1つのサービスを再起動する

2023-05-03 02:38:36

質問

docker swarmがスタック全体を再起動することなく、スタックの一部である1つのサービスを再起動させる方法があるかどうか、誰かご存知でしょうか?

どのように解決するのでしょうか?

実行中 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 フラグは、サービスの更新を強制し、サービスを再起動させます。