【基本コマンド】Dockerで起動中のコンテナ一覧を表示する方法|稼働確認・停止操作の第一歩!

Docker

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 があれば、そのコンテナに対して操作が可能です
  • PORTS0.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

この例では、webservermy-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 IDNAMESを使って様々な操作ができます。

コンテナの停止

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操作の効率が一気にアップします!

実際にターミナルで試しながら、自分の環境に合った使い方を見つけてみてください。

コメント

タイトルとURLをコピーしました