Swarm からアクセスできないノードを強制的に削除する
このステップでは、アクセスできないまたは応答しないノードを Swarm から強制的に削除する方法を学びます。ノードが故障し、正常に削除できない場合にこの操作が必要になります。
まず、ノード ID を取得するために、再度 Swarm 内のノードを一覧表示しましょう。
docker node ls
強制的に削除したいノードの ID
を特定します。現在の設定では、これは唯一のノード、つまりマネージャーノードです。
ノードを強制的に削除するには、--force
フラグを付けた docker node rm
コマンドの後にノード ID を指定します。<node_id>
を実際の ID に置き換えてください。
docker node rm --force <node_id>
ノードが削除されたことを示す出力が表示されるはずです。
Node <node_id> removed from swarm
次に、再度 Swarm 内のノードを一覧表示して、ノードが削除されたことを確認しましょう。
docker node ls
Swarm から唯一のノード(マネージャー)を削除したため、現在の Docker デーモンはもはや Swarm の一部ではなくなり、エラーメッセージが表示されます。
Error: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to a swarm.
これにより、マネージャーノードであっても、ノードが Swarm から正常に削除されたことが確認されます。マネージャーノードを強制的に削除する場合は、他にマネージャーが存在しない場合に Swarm の可用性に影響を与える可能性があるため、注意して行う必要があります。