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 言語の時間文字列(1m30s3h)です。 RFC3339 日付書式ではさらに RFC3339Nano 書式が利用可能であり、2006-01-02T15:04:052006-01-02T15:04:05.9999999992006-01-02Z07:002006-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 の基本コマンド