目次
docker ps 入門:コンテナの一覧表示(フィルターと表示形式のカスタマイズ)
docker ps はコンテナを一覧表示します。コンテナ操作の全体については、コンテナのライフサイクルを参照してください。
構文
docker ps [オプション]
docker ps と docker container ls は同じコマンドです。
オプション
| オプション | 説明 |
|---|---|
-a, --all | 停止済みのコンテナを含む、すべてのコンテナを表示します(デフォルトでは実行中のコンテナのみ表示) |
-q, --quiet | コンテナ ID のみを出力します |
-f, --filter 条件 | コンテナを絞り込みます。複数指定できます |
--format テンプレート | 出力形式をカスタマイズします。table、json、または Go テンプレートを指定できます |
-n, --last 数 | 最近作成された n 個のコンテナを表示します(状態を問いません) |
-l, --latest | 最後に作成されたコンテナを表示します |
-s, --size | コンテナのサイズを表示します |
--no-trunc | 出力を省略せずに表示します(完全な ID とコマンド) |
よく使う --filter 条件:
| 条件 | 例 |
|---|---|
status | status=running、status=exited、status=created |
name | name=web(部分一致) |
label | label=team=backend |
ancestor | ancestor=nginx:1.30-alpine(指定したイメージから作成) |
exited | exited=137(終了コードで絞り込み) |
publish | publish=8080(ポートを使用しているコンテナ) |
network / volume | network=appnet、volume=pgdata |
health | health=unhealthy |
例
環境には3つのコンテナがあります。実行中の web(nginx)と worker1(team=backend ラベル付き)、および終了済みの stopped1 です。
実行中のコンテナとすべてのコンテナ
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c260b28b0630 alpine:3.23 "sleep 600" 2 seconds ago Up 2 seconds worker1
1ec4fdc5c592 nginx:1.30-alpine "/docker-entrypoint.…" 8 seconds ago Up 2 seconds 80/tcp web
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c260b28b0630 alpine:3.23 "sleep 600" 2 seconds ago Up 2 seconds worker1
17b5b9a8c9ce alpine:3.23 "true" 3 seconds ago Exited (0) 2 seconds ago stopped1
1ec4fdc5c592 nginx:1.30-alpine "/docker-entrypoint.…" 8 seconds ago Up 2 seconds 80/tcp web
$ docker ps -q
c260b28b0630
1ec4fdc5c592
docker ps には stopped1 は表示されません。docker ps -a を使うと、状態が Exited (0) の stopped1 も表示されます。-q は ID のみを出力するため、他のコマンドに渡すときに便利です。
絞り込み
$ docker ps -a --filter status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17b5b9a8c9ce alpine:3.23 "true" 3 seconds ago Exited (0) 2 seconds ago stopped1
$ docker ps --filter name=work
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c260b28b0630 alpine:3.23 "sleep 600" 2 seconds ago Up 2 seconds worker1
$ docker ps --filter label=team=backend
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c260b28b0630 alpine:3.23 "sleep 600" 2 seconds ago Up 2 seconds worker1
表示項目のカスタマイズ
$ docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
NAMES IMAGE STATUS
worker1 alpine:3.23 Up 2 seconds
web nginx:1.30-alpine Up 3 seconds
table を指定すると、ヘッダー行が追加されます。項目は \t(タブ)で区切ります。よく使う項目は .ID、.Names、.Image、.Status、.Ports、.CreatedAt、.Labels、.Size です。JSON 形式で出力するには --format json を使います。
サイズと最新のコンテナ
$ docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
c260b28b0630 alpine:3.23 "sleep 600" 3 seconds ago Up 2 seconds worker1 4.1kB (virtual 9.1MB)
1ec4fdc5c592 nginx:1.30-alpine "/docker-entrypoint.…" 9 seconds ago Up 3 seconds 80/tcp web 86kB (virtual 66.8MB)
$ docker ps -n 1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c260b28b0630 alpine:3.23 "sleep 600" 3 seconds ago Up 2 seconds worker1
SIZEの最初の値はコンテナが書き込んだサイズ(書き込み可能レイヤー)です。virtualの値にはイメージのサイズが含まれます。nginx コンテナは起動時に一時ファイルを書き込むため、86kB になっています。-n 1は、最後に作成されたコンテナだけを表示します。
一括処理:停止済みコンテナをすべて削除する
$ docker rm $(docker ps -aq --filter status=exited)
17b5b9a8c9ce
$(...) は、まず中のコマンドを実行し、その結果(停止済みコンテナの ID すべて)を docker rm の引数として渡します。同じ処理は docker container prune でも実行できます(ディスク容量の整理を参照)。
PowerShell でも
$(...)を使えます。Windows CMD は対応していないため、docker container pruneを使ってください。
関連する章
- コンテナのライフサイクル
- docker inspect:単一のコンテナの詳細情報を確認します
- docker compose コマンド:
docker compose ps
練習問題
練習:nginx:1.30-alpine から作成されたコンテナをすべて(停止済みのものも含めて)一覧表示し、名前と状態だけを表示してください。
解答
docker ps -a --filter ancestor=nginx:1.30-alpine --format "table {{.Names}}\t{{.Status}}"
よくある質問
docker ps に実行したばかりのコンテナが表示されないのはなぜですか?
docker ps は**実行中**のコンテナだけを表示します。コンテナが終了した場合(単発コマンドの場合や、起動に失敗した場合など)は、docker ps -a を使います。
docker ps と docker container ls は同じですか?
まったく同じです。docker ps、docker container ls、docker container list、docker container ps はすべて同じコマンドです。
STATUS の Exited (0) と Exited (1) は何が違いますか?
括弧内は終了コードです。0 はプログラムが正常に終了したことを示し、0 以外はエラーを示します。137 は強制終了されたことを示します(メモリ不足など)。原因を確認するには docker logs を使います。
更新日 2026年10月14日