🔖
【Docker】docker ps と docker ps -a の違いを整理する
はじめに
Dockerを使っていると、コンテナの一覧を確認する場面がよくあります。
確認に使うのが docker ps コマンドですが、
オプションに -a を付けるかどうかで、表示されるコンテナの範囲が異なります。
本記事では、docker ps と docker ps -a の違いを整理します。
docker ps
docker ps は、現在「起動中」のコンテナだけを表示します。
停止したコンテナは表示されません。
docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 mysql:8.0 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp mysql-container
→ この例では mysql-container が稼働中であることが確認できます。
docker ps -a
docker ps -a は、起動中・停止中を含めて「すべてのコンテナ」を表示します。
docker ps -a
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 mysql:8.0 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp mysql-container
b7c8d9e0f1g2 nginx "nginx -g 'daemon of…" 3 hours ago Exited (0) 3 hours ago old-nginx
→ 稼働中の mysql-container に加え、すでに停止した old-nginx も表示されています。
STATUS列の見方:
- Up X時間: 起動してからの経過時間
- Exited (終了コード): 停止時の終了コード(0は正常終了)
違いのまとめ
| コマンド | 表示対象 | 主な用途 |
|---|---|---|
docker ps |
起動中のコンテナのみ | 今動いているコンテナを確認したいとき |
docker ps -a |
起動中+停止中すべてのコンテナ | 過去に起動したコンテナも含めて調査や削除をしたいとき |
使い分けの目安
-
普段の確認 →
docker ps -
停止したコンテナを探したい/削除したい →
docker ps -a
おわりに
docker ps と docker ps -a は似ていますが、表示される範囲が大きく異なります。
特に、停止コンテナを調べたいときに -a を付けるのを忘れないようにしましょう。
本記事が、日常的なコンテナ操作やトラブルシューティングの参考になれば幸いです。
Discussion