docker ps コマンドは Docker 上のコンテナの一覧を表示するコマンドです。便利なコマンドですが見づらい状態にもなりやすいため、見やすくする方法を紹介します。
まず見難くなった状態が次図です。メールコンテナのバインドしているポートが多いことが原因でひどいことになっています。また、終了済みコンテナも下の方に大量にあります。
表示するカラムを自在にするとテーブル表示が見やすくなります。これは format オプションでできます。
次の様に –format 以下に table 欲しいデータに該当するプレースホルダを{{}}で当てはめれば大体のケースに対応できます。
docker ps -sa --format "table {{.Image}}\t{{.Names}}\t{{.Status}}\t{{.Size}}"
詳しくは以下のドキュメント参照です。
docker ps | Docker Documentation
docker ps | Docker ドキュメント
コマンド出力やログ出力のフォーマット変更 | Docker ドキュメント
余談ですが現在の状態全てを構造化して何かをしたいならば次のコマンドを使うと良いです。
docker ps -sa --format "{{json .}}" > hoge.json
json ファイルに json に構造化されたコンテナ情報が詰め込まれます。これを元に JavaScript やらなにやらを使うと複雑な操作もしやすいです。
表示するコンテナを絞り込むには filter オプションを試し、最後に grep コマンドで工夫するのが便利です。filter オプションでは次の様にコンテナの元となったイメージやステータスなどを使えます。
docker ps -a -f ancestor=node:14-alpine
詳しいフィルタリングオプションはドキュメント参照です。
docker ps | Docker ドキュメント
ps — Docker-docs-ja 17.06 ドキュメント
このオプションは単に絞り込んでみる他にも、次の様に q オプションを併用して特定の docker run 専用イメージを使用した痕跡を消す時にも便利です。
docker rm $(docker ps -aq -f ancestor=node:14-alpine)
また docker ps コマンドのオプションに加えて grep や awk といった Linux のコマンドを使うことでいささかハック的ながらも細かい操作ができます。grep で docker-compose もどきになるのは特に便利です。