1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker ps コマンドの使い方|コンテナ一覧の確認・フィルタ・フォーマット指定まとめ

1
Posted at

ひとことで言うと

# 実行中のコンテナ一覧
docker ps

# 停止中も含めた全コンテナ一覧
docker ps -a

やりたかったこと / 現象

「今どのコンテナが動いているか確認したい」「さっき停止したコンテナの名前を思い出せない」「特定のイメージから起動したコンテナだけ絞り込みたい」——こうした場面で最初に使うのが docker ps です。

デフォルトでは実行中のコンテナしか表示されないため、「コンテナが消えた」と勘違いしてしまうことがよくあります。オプションの使い分けを押さえておくと、コンテナ管理が一気に楽になります。


環境

  • Docker: 20.10以降で動作確認
  • OS: Linux / macOS / Windows(WSL2)

解決策

1. 実行中のコンテナを確認する

docker ps
CONTAINER ID   IMAGE     COMMAND                  STATUS         PORTS                    NAMES
a1b2c3d4e5f6   nginx     "/docker-entrypoint.…"   Up 2 hours     0.0.0.0:80->80/tcp       my-nginx

デフォルトでは 実行中(Up状態)のコンテナのみ が表示されます。

2. 停止中のコンテナも含めて全件表示する

docker ps -a

Exited になっているコンテナも一覧に含まれます。「コンテナが見つからない」と思ったら、まず -a を付けて確認しましょう。

3. 表示件数を絞り込む

# 直近作成した1件だけ表示
docker ps -l

# 直近作成した3件を表示
docker ps -n 3

4. コンテナIDだけを取得する

docker ps -aq

スクリプトで一括削除・一括停止する際によく使う書き方です。

# 停止中のコンテナをまとめて削除
docker rm $(docker ps -aq -f status=exited)

5. --filter で条件を絞り込む

# 特定イメージから起動したコンテナだけ表示
docker ps -a --filter "ancestor=nginx"

# 名前で絞り込む
docker ps -a --filter "name=my-nginx"

# 状態で絞り込む
docker ps -a --filter "status=exited"

6. --format で出力項目をカスタマイズする

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
NAMES       STATUS         PORTS
my-nginx    Up 2 hours     0.0.0.0:80->80/tcp

Goテンプレート形式で必要な列だけを表示できるため、横に長くなりがちな docker ps の出力を見やすく整理できます。

7. コンテナのディスクサイズを表示する

docker ps -s

SIZE 列にコンテナが使用しているディスク容量が追加されます。ディスク圧迫の調査に便利です。


よくあるエラーと対処

コンテナが一覧に出てこない

docker ps は実行中のコンテナしか表示しません。停止済みの場合は -a を付けて確認してください。

docker ps -a

docker: command not found

Dockerがインストールされていないか、PATHが通っていません。インストール状況を確認しましょう。

docker --version

Cannot connect to the Docker daemon

Dockerデーモンが起動していません。OSに応じて起動します。

# Linux (systemd)
sudo systemctl start docker

# macOS / Windows
# Docker Desktopを起動する

--filter の条件を指定しても結果が0件になる

フィルタのキーやスペルミスが原因のことが多いです。ancestor はイメージ名、name はコンテナ名、statusrunning / exited / paused などの状態を指定します。指定値が正しいか再確認してください。


よくある質問

Q: docker psdocker container ls の違いは何ですか?
どちらも同じ結果を返します。docker container ls は新しいサブコマンド体系の呼び方で、docker ps は従来からのエイリアスです。

Q: 停止中のコンテナだけを表示するには?
docker ps -a --filter "status=exited" を使います。

Q: コンテナ名だけをリスト表示したい場合は?
docker ps --format "{{.Names}}" で名前だけを1行ずつ出力できます。

Q: docker ps の出力が横に長くて見づらいときは?
--format オプションでtable形式のテンプレートを指定すると、必要な列だけに絞って見やすくできます。

Q: 複数の条件でフィルタできますか?
--filter を複数回指定すると、AND条件として絞り込まれます。例: docker ps -a --filter "status=exited" --filter "ancestor=nginx"

Q: docker compose で立ち上げたコンテナも同じように確認できますか?
docker ps でも表示されますが、docker compose ps を使うとプロジェクト単位で見やすく整理されます。


関連記事


この記事は errsolved.com にも掲載しています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?