ステータスと名前でコンテナをフィルタリングする
このステップでは、コンテナの状態や名前に基づいて一覧をフィルタリングする方法を学びます。多くのコンテナがある場合に特定のサブセットのみを表示したいときに非常に便利です。
docker ps
コマンドは--filter
フラグをサポートしており、コンテナをリストアップする基準を指定できます。
まず、フィルタを使用して実行中のコンテナのみを表示してみましょう。実行中のコンテナのステータスはrunning
です。
docker ps --filter "status=running"
このコマンドはステップ 1 のdocker ps
と同じ出力を表示し、現在実行中の Ubuntu コンテナのみがリストされます。
次に、終了したコンテナをフィルタリングしてみましょう。終了したコンテナのステータスはexited
です。-a
フラグを付けて全てのコンテナを表示することを忘れないでください。そうしないと、デフォルトで表示されない終了済みコンテナはフィルタで見つかりません。
docker ps -a --filter "status=exited"
このコマンドはステップ 1 で実行したhello-world
コンテナを表示するはずです。そのステータスは「Exited」になっています。
コンテナ名でフィルタリングすることもできます。--name
フラグを使用せずにコンテナを実行すると、Docker はランダムな名前を割り当てます。実行中の Ubuntu コンテナの名前はdocker ps
を実行して「NAMES」列で確認できます。
例えば、Ubuntu コンテナの名前がagitated_hoover
のような場合、この名前でフィルタリングできます:
docker ps -a --filter "name=agitated_hoover"
agitated_hoover
は実際の Ubuntu コンテナの名前に置き換えてください。このコマンドは、その特定の名前のコンテナをステータスに関係なくリストします(この場合は実行中のはずです)。
フィルタを組み合わせることも可能です。例えば、特定の名前の実行中コンテナを検索するには:
docker ps --filter "status=running" --filter "name=agitated_hoover"
ここでもagitated_hoover
はコンテナの実際の名前に置き換えてください。
フィルタリングは、特に多くのコンテナがある環境でコンテナを管理・検査する強力な方法です。