Local File ログドライバー

localログドライバーは、コンテナーの標準出力、標準エラー出力を取り込んで、内部ストレージへの書き込みを行います。 この内部ストレージは、性能やディスク利用が最適化されているものです。

デフォルトでlocalドライバーは、1 つのコンテナーあたり 100MB のログメッセージ容量を確保します。 そして自動的に圧縮を行って、ディスク利用量を軽減します。 100 MB というデフォルト容量は、デフォルトサイズが 20 MB のファイルを、デフォルトで 5 つ用意するところからきています。 (5 つのファイルはログローテーションを行うためです。)

メモ

localログドライバーは、ファイルベースのストレージを利用します。 そのファイルフォーマットやストレージのメカニズムは、Docker デーモンがアクセスする目的で設計されています。 したがって外部ツールが利用するものではないため、その実装は将来のリリースにおいて変更になる場合があります。

利用方法

デフォルトログドライバーとしてlocalドライバーを利用するには、daemon.jsonファイル内においてlog-driverlog-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 createdocker runに対して--log-driverフラグを指定して実行します。

$ docker run \
      --log-driver local --log-opt max-size=10m \
      alpine echo hello world

オプション

localログドライバーでは、以下のオプションがサポートされます。

オプション 内容説明 利用例
max-size ログファイルが切り替わるまでの最大サイズ。正の整数と単位(kmg)を記述します。デフォルトは 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
local, docker, logging, driver