🔖

【Docker】docker ps と docker ps -a の違いを整理する

に公開

はじめに

Dockerを使っていると、コンテナの一覧を確認する場面がよくあります。
確認に使うのが docker ps コマンドですが、
オプションに -a を付けるかどうかで、表示されるコンテナの範囲が異なります。

本記事では、docker psdocker 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 psdocker ps -a は似ていますが、表示される範囲が大きく異なります。
特に、停止コンテナを調べたいときに -a を付けるのを忘れないようにしましょう。

本記事が、日常的なコンテナ操作やトラブルシューティングの参考になれば幸いです。

Discussion