Dockerを使っていると、「今どのコンテナが動いているの?」「名前やIDがわからないと操作できない!」という場面に必ず出くわします。
そんなときに役立つのが、起動中のDockerコンテナを一覧表示するコマンドです。この記事では、稼働中コンテナの確認方法から、便利なオプション、停止・再起動との連携まで、初心者にもわかりやすく解説します。
起動中コンテナを表示する基本コマンド

Dockerで現在起動中のコンテナを確認するには、シンプルなコマンド一つで済みます。
docker ps
このコマンドを実行すると、現在「起動中」のコンテナ一覧が表示されます。
Dockerを使用する上で最も頻繁に使うコマンドの一つです。
実行例:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1a3b2c4f567 nginx:latest "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 0.0.0.0:8080->80/tcp webserver
a7c9e8d6b5f4 mysql:8.0 "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp, 33060/tcp my-database
何も表示されない場合は、現在起動中のコンテナがないことを意味します。
表示される情報の見方(ID・名前・ポートなど)

docker ps
コマンドの出力には、各コンテナに関する重要な情報が含まれています。各列の意味を理解しましょう。
列名 | 意味 | 例 |
---|---|---|
CONTAINER ID | コンテナの一意な識別子(短縮表示) | d1a3b2c4f567 |
IMAGE | 使用中のDockerイメージ名とタグ | nginx:latest |
COMMAND | コンテナ起動時に実行されるコマンド | “/docker-entrypoint.…” |
CREATED | コンテナが作成された時刻 | 10 minutes ago |
STATUS | 現在の状態と起動からの経過時間 | Up 10 minutes |
PORTS | ホストとコンテナのポートマッピング | 0.0.0.0:8080->80/tcp |
NAMES | コンテナの名前(自動生成または指定) | webserver |
重要ポイント:
CONTAINER ID
またはNAMES
があれば、そのコンテナに対して操作が可能ですPORTS
の0.0.0.0:8080->80/tcp
は「ホストの8080ポートがコンテナの80ポートに転送されている」ことを示しますCOMMAND
は切り詰められて表示されることが多いです(コマンドの全体を見るにはオプションが必要)
すべてのコンテナを確認する(停止中も含む)
docker ps
コマンドだけでは、起動中のコンテナしか表示されません。
停止中のコンテナも含めてすべて確認するには、-a
(または --all
)オプションを追加します。
docker ps -a
実行例:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1a3b2c4f567 nginx:latest "/docker-entrypoint.…" 10 minutes ago Up 10 minutes 0.0.0.0:8080->80/tcp webserver
a7c9e8d6b5f4 mysql:8.0 "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp, 33060/tcp my-database
b2c3d4e5f6a7 redis:alpine "docker-entrypoint.s…" 3 days ago Exited (0) 2 days ago redis-cache
この例では、webserver
とmy-database
が起動中、redis-cache
が停止中であることがわかります。
STATUSの主な種類:
Up XX minutes/hours
– 起動中Exited (0) XX ago
– 正常終了(終了コード0)Exited (1-255) XX ago
– エラーで終了(終了コード1-255)Restarting
– 再起動中Created
– 作成済みだが未起動
よく使う表示オプション(–formatなど)

コンテナIDのみを表示 (-q オプション)
スクリプトやコマンド連携で使いたい場合など、IDだけが必要なときに便利です。
docker ps -q
実行例:
$ docker ps -q
d1a3b2c4f567
a7c9e8d6b5f4
出力をカスタマイズ (--format オプション)
必要な情報だけを、好みのフォーマットで表示できます。
特定の列だけを表示:
docker ps --format "table {{.Names}}\t{{.Ports}}"
実行例:
$ docker ps --format "table {{.Names}}\t{{.Ports}}"
NAMES PORTS
webserver 0.0.0.0:8080->80/tcp
my-database 3306/tcp, 33060/tcp
カスタムフォーマットの例:
docker ps --format "ID: {{.ID}}, Name: {{.Names}}, Status: {{.Status}}"
実行例:
ID: d1a3b2c4f567, Name: webserver, Status: Up 10 minutes
ID: a7c9e8d6b5f4, Name: my-database, Status: Up 2 hours
直近に作成されたn個のコンテナのみを表示
docker ps -n 2
このコマンドは、最新の2つのコンテナだけを表示します(停止中のコンテナも含む)。
すべての列を切り詰めずに表示
docker ps --no-trunc
COMMANDなど長い情報が切り詰められずに全て表示されます。
一覧からの停止・削除の基本操作

コンテナ一覧から特定のコンテナを見つけたら、そのCONTAINER ID
やNAMES
を使って様々な操作ができます。
コンテナの停止
docker stop コンテナIDまたは名前
実行例:
docker stop webserver
または複数を一度に停止:
docker stop d1a3b2c4f567 a7c9e8d6b5f4
コンテナの削除(停止後)
docker rm コンテナIDまたは名前
実行例:
docker rm redis-cache
注意点: 起動中のコンテナは通常削除できません。
強制的に削除するには -f
オプションを使用しますが、データが失われる可能性があるため注意が必要です。
一覧からフィルタリングして操作
特定の条件に一致するコンテナだけを操作したい場合:
# 名前に「mysql」を含むコンテナだけを表示
docker ps --filter "name=mysql"
# 特定のイメージに基づくコンテナだけを表示
docker ps --filter "ancestor=nginx:latest"
停止中のコンテナをすべて削除
docker container prune
このコマンドは停止中のコンテナをすべて削除します(確認メッセージあり)。
まとめ
Dockerでコンテナを効率よく管理するには、まず”今動いているコンテナを把握する”ことが第一歩です。
おさらい:
docker ps
で現在起動中のコンテナ一覧を表示docker ps -a
で停止中も含めたすべてのコンテナを確認-q
オプションでIDだけを抽出、スクリプトと連携しやすく--format
で出力をカスタマイズし、必要な情報だけを表示- 一覧から得たID/名前を使って停止・削除・接続などの操作が可能
よく使う組み合わせ例:
# すべてのコンテナを停止
docker stop $(docker ps -q)
# 停止中のコンテナも含めてすべて表示し、名前とステータスだけ抽出
docker ps -a --format "table {{.Names}}\t{{.Status}}"
# 特定のイメージを使っているコンテナだけを再起動
docker restart $(docker ps -q --filter "ancestor=nginx")
この基本を押さえるだけで、Docker操作の効率が一気にアップします!
実際にターミナルで試しながら、自分の環境に合った使い方を見つけてみてください。
コメント