言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Docker辞典

  1. トップページ
  2. Docker辞典
  3. docker logs

docker logs

『docker logs』は、実行中または停止済みのコンテナが標準出力(stdout)・標準エラー出力(stderr)に書き出したログを確認するコマンドです。ログのリアルタイム追跡・タイムスタンプ付き表示・出力行数の絞り込みなど、デバッグやモニタリングに役立つオプションが用意されています。

構文

# -----------------------------------------------
#  基本構文
# -----------------------------------------------

# docker logs {コンテナID または コンテナ名}
#   → 対象コンテナのログを全件表示します
#   例: docker logs evangelion-app

# -----------------------------------------------
#  主なオプション
# -----------------------------------------------

# docker logs --follow {コンテナ名}
#   → ログをリアルタイムで追跡します(tail -f に相当)
#   例: docker logs --follow evangelion-app

# docker logs --timestamps {コンテナ名}
#   → 各ログ行の先頭に RFC3339Nano 形式のタイムスタンプを付加します
#   例: docker logs --timestamps evangelion-app

# docker logs --tail {行数} {コンテナ名}
#   → 末尾から指定した行数だけ表示します
#   例: docker logs --tail 20 evangelion-app

# docker logs --since {時刻または相対時間} {コンテナ名}
#   → 指定した時刻以降のログだけを表示します
#   例: docker logs --since 30m evangelion-app
#   例: docker logs --since 2026-03-26T00:00:00 evangelion-app

# docker logs --until {時刻または相対時間} {コンテナ名}
#   → 指定した時刻以前のログだけを表示します
#   例: docker logs --until 2026-03-26T06:00:00 evangelion-app

# -----------------------------------------------
#  stderr だけを確認する(シェルのリダイレクト)
# -----------------------------------------------

# docker logs {コンテナ名} 2>&1 | grep ERROR
#   → 標準出力と標準エラー出力をまとめて grep でフィルタリングします
#   例: docker logs evangelion-app 2>&1 | grep ERROR

構文一覧

構文 / オプション概要
docker logs {コンテナ名}対象コンテナのログを全件まとめて表示します。
--follow-fログをリアルタイムで追跡します。Ctrl+C で終了するまで新しい出力を流し続けます。
--timestamps-t各行の先頭に RFC3339Nano 形式のタイムスタンプを付加します。
--tail {行数}-n末尾から指定した行数だけを表示します。--tail all を指定すると全件表示します。
--since {時刻}指定した時刻以降のログだけを表示します。相対時間(例: 30m2h)または RFC3339 形式の絶対時刻を指定できます。
--until {時刻}指定した時刻以前のログだけを表示します。--since と組み合わせて期間を絞り込めます。
--detailsログドライバーに渡された追加属性も表示します。通常のログ確認では使用しません。

サンプルコード

コンテナのログを全件表示する
# -----------------------------------------------
#  evangelion-app コンテナのログを全件表示します
# -----------------------------------------------

# まずコンテナを起動します(すでに起動済みの場合はこの手順は不要です)
docker run -d --name evangelion-app \
  -e APP_PILOT=shinji \
  nginx:alpine

# ログを全件表示します
docker logs evangelion-app
$ docker logs evangelion-app
2026/03/26 09:00:00 [notice] 1#1: using the "epoll" event method
2026/03/26 09:00:00 [notice] 1#1: nginx/1.25.3
2026/03/26 09:00:00 [notice] 1#1: start worker processes
172.17.0.1 - - [26/Mar/2026:09:00:05 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.88.1"
ログをリアルタイムで追跡する(--follow)
# -----------------------------------------------
#  --follow でログをリアルタイムに追跡します
# -----------------------------------------------

# rei-server コンテナのログを流し続けます(Ctrl+C で停止)
docker logs --follow rei-server
$ docker logs --follow rei-server
2026/03/26 09:01:00 [notice] 1#1: start worker processes
2026/03/26 09:01:10 [notice] connected: pilot=ayanami-rei
2026/03/26 09:01:15 [notice] request received from asuka-langley
2026/03/26 09:01:20 [error] synchronization failed: unit-02 not responding
^C
タイムスタンプ付きで末尾20行を表示する
# -----------------------------------------------
#  --timestamps と --tail を組み合わせて使います
# -----------------------------------------------

# misato-bridge コンテナのログの末尾20行をタイムスタンプ付きで確認します
docker logs --timestamps --tail 20 misato-bridge
$ docker logs --timestamps --tail 20 misato-bridge
2026-03-26T09:05:00.123456789Z launch sequence initiated by katsuragi-misato
2026-03-26T09:05:01.234567890Z unit-01 status: standby
2026-03-26T09:05:02.345678901Z unit-01 status: active — pilot: ikari-shinji
2026-03-26T09:05:10.456789012Z alert level upgraded to pattern blue
2026-03-26T09:05:15.567890123Z [ERROR] AT-field breach detected in sector 7
期間を指定してログを絞り込む(--since / --until)
# -----------------------------------------------
#  --since で「直近30分以内」のログだけを確認します
# -----------------------------------------------

# 直近30分以内のログを表示します
docker logs --since 30m gendo-command

# -----------------------------------------------
#  --since と --until で期間を指定します
# -----------------------------------------------

# 2026-03-26 の 09:00〜09:10 の間のログだけを取得します
docker logs \
  --since 2026-03-26T09:00:00 \
  --until 2026-03-26T09:10:00 \
  gendo-command
$ docker logs --since 30m gendo-command
2026-03-26T09:03:42.000000000Z [INFO]  scenario activated by ikari-gendo
2026-03-26T09:04:00.000000000Z [INFO]  third-impact protocol: pending
$ docker logs --since 2026-03-26T09:00:00 --until 2026-03-26T09:10:00 gendo-command
2026-03-26T09:03:42.000000000Z [INFO]  scenario activated by ikari-gendo
2026-03-26T09:04:00.000000000Z [INFO]  third-impact protocol: pending
2026-03-26T09:05:30.000000000Z [WARN]  unit-01 synchronization rate exceeded limit

概要

『docker logs』はコンテナが stdout・stderr に書き出した内容をそのまま取得します。コンテナが停止している場合でもログは保持されており、同じコマンドで確認できます。ただし、デフォルトのログドライバーは json-file であり、ホスト上の /var/lib/docker/containers/{ID}/{ID}-json.log に保存されます。--log-driver none でコンテナを起動した場合はログが保存されないため docker logs は使用できません。また、--follow でリアルタイム追跡中にコンテナが停止すると、自動的に追跡が終了します。本番環境では --tail で表示行数を絞り込むことで、大量ログによるターミナルの負荷を抑えられます。

関連ページ: docker run(コンテナの作成・実行) / docker ps(コンテナ一覧の確認)

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。