状態とログを確認する - docker ps / docker logs
実行中コンテナの一覧表示とログ確認のコマンド。`docker ps -a` で停止済みも含めて表示、`docker logs -f` で追跡、`--since` / `--tail` で範囲を絞る。
概念図
構文
docker ps [OPTIONS]
docker logs [OPTIONS] CONTAINER実例
停止済みも含めて整形表示
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"直近 100 行から追跡モードでログを読む
docker logs -f --tail 100 api10 分前から 5 分前までのログを抽出
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 由来で止まってるやつ」を探す、のような絞り込みが一発でできる。
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 のような環境では環境側でログ集約するので、そちらに任せる。
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 と組み合わせると、特定のエラーコードだけを取り出すパイプラインを組める。
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関連トピック
docker run- イメージから新しいコンテナを起動するコマンド。`-d` でバックグラウンド化、`-p` でポート公開、`-v` でボリュームマウント、`--name` で名前付けなど、日常的に使うオプションを押さえておく。 docker exec- 実行中のコンテナに追加プロセスを起動するコマンド。多くは `-it` でシェルに入り、ログやファイルシステム、プロセス状態を調査するために使う。 docker build- Dockerfile からイメージをビルドするコマンド。ビルドコンテキスト、`-f` の Dockerfile 指定、`-t` のタグ付け、BuildKit のキャッシュ最適化、`--target` によるマルチステージ制御を押さえる。 