サービスをラベルでフィルタリングする
このステップでは、--filter
フラグを使用した docker service ls
コマンドを使って、サービスの一覧をラベルに基づいてフィルタリングする方法を学びます。ラベルは、サービスを含む Docker オブジェクトに付けることができるキーと値のペアで、オブジェクトの整理と識別に役立ちます。
ラベルでフィルタリングする基本的な構文は docker service ls --filter label=<key>=<value>
です。特定のラベルのキーと値でフィルタリングすることも、ラベルのキーの存在だけでフィルタリングすることもできます。
まず、既存の my-web-service
にラベルを追加しましょう。サービスに environment=development
というラベルを追加します。
docker service update --label-add environment=development my-web-service
このコマンドは my-web-service
を更新し、指定されたラベルを追加します。
では、environment=development
というラベルが付いたサービスのみを表示するようにフィルタリングしましょう。
docker service ls --filter label=environment=development
出力には my-web-service
が表示されるはずです。なぜなら、このラベルを追加したからです。
また、ラベルの値に関係なく、ラベルのキーの存在だけでフィルタリングすることもできます。たとえば、environment
ラベルが付いたすべてのサービスを一覧表示するには、次のようにします。
docker service ls --filter label=environment
このコマンドは、environment
ラベルが付いたすべてのサービスを一覧表示します。ラベルの値は関係ありません。この場合、依然として my-web-service
が表示されます。
ラベルでフィルタリングすることは、サービスを管理してクエリを実行する強力な方法です。特に、大規模な Swarm では、環境、チーム、またはアプリケーションごとにサービスを分類するためにラベルを使用することがあります。