Local File ログドライバー
local
ログドライバーは、コンテナーの標準出力、標準エラー出力を取り込んで、内部ストレージへの書き込みを行います。
この内部ストレージは、性能やディスク利用が最適化されているものです。
デフォルトでlocal
ドライバーは、1 つのコンテナーあたり 100MB のログメッセージ容量を確保します。
そして自動的に圧縮を行って、ディスク利用量を軽減します。
100 MB というデフォルト容量は、デフォルトサイズが 20 MB のファイルを、デフォルトで 5 つ用意するところからきています。
(5 つのファイルはログローテーションを行うためです。)
メモ
local
ログドライバーは、ファイルベースのストレージを利用します。 そのファイルフォーマットやストレージのメカニズムは、Docker デーモンがアクセスする目的で設計されています。 したがって外部ツールが利用するものではないため、その実装は将来のリリースにおいて変更になる場合があります。
利用方法
デフォルトログドライバーとしてlocal
ドライバーを利用するには、daemon.json
ファイル内においてlog-driver
とlog-opt
キーを適切に設定します。
daemon.json
ファイルは Linux ホストの場合は/etc/docker/
、Windows Server の場合はC:\ProgramData\docker\config\daemon.json
にあります。
daemon.json
を利用して Docker を設定する方法については daemon.json を参照してください。
以下の例では、ログドライバーにlocal
を設定し、max-size
オプションを利用しています。
{
"log-driver": "local",
"log-opts": {
"max-size": "10m"
}
}
コンテナーの設定を新たにしたら、その変更を有効にするために Docker を再起動してください。 すでに起動しているコンテナーは、新たなログ設定を利用しません。
特定のコンテナーにのみログドライバーを設定するには、docker container create
やdocker run
に対して--log-driver
フラグを指定して実行します。
$ docker run \
--log-driver local --log-opt max-size=10m \
alpine echo hello world
オプション
local
ログドライバーでは、以下のオプションがサポートされます。
オプション | 内容説明 | 利用例 |
---|---|---|
max-size |
ログファイルが切り替わるまでの最大サイズ。正の整数と単位(k 、m 、g )を記述します。デフォルトは 20m です。 |
--log-opt max-size=10m |
max-file |
許容するログファイルの最大数。ログファイルが切り替わることでファイル最大数を越えた場合、最も古いファイルが削除されます。正の整数を指定します。デフォルトは 5 です。 | --log-opt max-file=3 |
compress |
ローテートするログファイルの圧縮の有無を指定します。デフォルトは有効です。 | --log-opt compress=false |
利用例
以下の例はalpine
コンテナーを起動して、ログファイルを最大 3 つ利用し、その個々について 10 MB を越えないように設定します。
$ docker run -it --log-driver local --log-opt max-size=10m --log-opt max-file=3 alpine ash