Dock Stay
状態とログを確認する - docker ps / docker logs の使い方・オプション・サンプル

状態とログを確認する - docker ps / docker logs

実行中コンテナの一覧表示とログ確認のコマンド。`docker ps -a` で停止済みも含めて表示、`docker logs -f` で追跡、`--since` / `--tail` で範囲を絞る。

概念図

docker ps / docker logs diagram

構文

bash
docker ps [OPTIONS]
docker logs [OPTIONS] CONTAINER

実例

停止済みも含めて整形表示

bash
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

直近 100 行から追跡モードでログを読む

bash
docker logs -f --tail 100 api

10 分前から 5 分前までのログを抽出

bash
docker logs --since 10m --until 5m web

実行中コンテナの一覧

docker ps は実行中コンテナのみを表示する。

停止したものも見たい場合は docker ps -a

出力の列は CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS、NAMES。

--format を使うと Go template で整形でき、スクリプトで扱いやすくなる。

たとえば docker ps -q は ID のみを返すので、docker stop $(docker ps -q) のようにパイプで全停止できる。

--filter で条件絞り込みも可能。

docker ps -f "status=exited" は停止済みのみ、docker ps -f "name=web" は名前に web を含むもの、docker ps -f "ancestor=nginx" は nginx イメージから起動したコンテナを抽出する。

障害調査時に「nginx 由来で止まってるやつ」を探す、のような絞り込みが一発でできる。

bash
docker ps
docker ps -a
docker ps -q
docker ps -f "status=exited" -f "ancestor=node:20"

ログの追跡

docker logs CONTAINER は stdout / stderr をそのまま表示する。

-f(follow)を付けると tail -f のように後続ログをストリーミングする。

CTRL+C で抜けてもコンテナは停止しないので、本番のライブ調査でも安全。

ログドライバーのデフォルトは json-file で、/var/lib/docker/containers/<id>/*-json.log に書かれる。

コンテナが大量の stdout を吐くとホストのディスクを食いつぶすので、運用時は --log-opt max-size=10m --log-opt max-file=3 のようにローテーションを設定する。

Kubernetes や Fargate のような環境では環境側でログ集約するので、そちらに任せる。

bash
docker logs api
docker logs -f api
docker run -d --log-opt max-size=10m --log-opt max-file=3 --name api myapp

`--since` / `--tail` の組み合わせ

--tail N は末尾 N 行、--since DURATION は指定時間以降、--until DURATION は指定時間までを表示する。

障害調査では docker logs --since 15m --tail 500 api のように直近 15 分の末尾 500 行だけに絞ると、ログが膨大でもスクロールに埋もれない。

時刻指定は RFC3339(--since 2026-04-18T10:00:00)や相対指定(--since 30m, --since 2h, --since 1d)の両方が使える。

-t を付けるとタイムスタンプ付きで表示されるので、ログに時刻を出していないアプリの原因究明に役立つ。

grep や jq と組み合わせると、特定のエラーコードだけを取り出すパイプラインを組める。

bash
docker logs --since 1h --tail 200 -t api | grep ERROR
docker logs --since 2026-04-18T09:00:00 --until 2026-04-18T10:00:00 api

関連トピック