docker logs
説明
コンテナーからログを取得します。
利用方法
$ docker logs [オプション] CONTAINER
追加説明
docker logs
コマンドは、実行時に存在するログを取得します。
メモ
このコマンドは
json-file
またはjournald
ログドライバーを使って起動されたコンテナーに対してのみ動作します。
ログドライバーの選定や設定についての詳細は ログドライバーの設定 を参照してください。
docker logs --follow
を実行すると、コンテナーのSTDOUT
およびSTDERR
に出力される新たなログを継続して出力します。
--tail
に対して負数や数字以外を指定することはできません。
その場合はall
が設定されたものとして動作します。
docker logs --timestamps
を実行すると、各ログエントリーにおいて RFC3339Nano タイムスタンプ を追加します。
たとえば2014-09-16T06:17:46.000000000Z
のような出力です。
ナノ秒の桁部分の整形が必要な場合にはゼロが埋められます。
docker logs --details
を実行すると、コンテナーの生成時に--log-opt
に対して指定された環境変数やラベルのような追加の属性が表示されます。
--since
オプションを用いると、指定した日付時刻以降に生成されたコンテナーログのみを表示します。
指定できる日付書式は RFC 3339 日付、UNIX タイムスタンプ、Go 言語の時間文字列(1m30s
、3h
)です。
RFC3339 日付書式ではさらに RFC3339Nano 書式が利用可能であり、2006-01-02T15:04:05
、2006-01-02T15:04:05.999999999
、2006-01-02Z07:00
、2006-01-02
といったものが利用できます。
タイムスタンプの終わりにZ
やタイムスタンプオフセット+-00:00
を指定しなかった場合には、クライアントのタイムゾーンが用いられます。
Unix タイムスタンプを用いる場合は、秒[.ナノ秒]と記述します。
ここで秒は 1970年1月1日(UTC/GMT の真夜中)からの経過秒であり、うるう秒を含めません(Unix エポックまたは Unix 時間と呼ばれます)。
また任意の指定として .ナノ秒の項目には 9 桁以下の少数を記述します。
--since
オプションは--follow
オプションや--tail
オプションと組み合わせて利用することができます。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--details |
ログに出力されている詳細を表示します。 | |
--follow , -f |
ログ出力を継続します。 | |
--since |
指定タイムスタンプ(たとえば 2013-01-02T13:23:37Z)以降、あるいは相対的な時間(たとえば 42 分なら 42m)以降のログを表示します。 | |
--tail , -n |
all |
ログ最終部分から表示する行数。 |
--timestamps , -t |
タイムスタンプを表示します。 | |
--until |
API 1.35 以上 指定タイムスタンプ(たとえば 2013-01-02T13:23:37Z)以前、あるいは相対的な時間(たとえば 42 分なら 42m)以前のログを表示します。 |
利用例
特定時刻までのログ抽出
特定時刻以前のログを抽出するには、以下のように実行します。
$ docker run --name test -d busybox sh -c "while true; do $(echo date); sleep 1; done"
$ date
Tue 14 Nov 2017 16:40:00 CET
$ docker logs -f --until=2s test
Tue 14 Nov 2017 16:40:00 CET
Tue 14 Nov 2017 16:40:01 CET
Tue 14 Nov 2017 16:40:02 CET
上位コマンド
コマンド | 説明 |
---|---|
docker | Docker CLI の基本コマンド |