ローカルファイル・ロギング・ドライバ¶
local
ロギング・ドライバはコンテナの標準出力(stderr)・標準エラー出力(stderr)を取り込み、それらを内部ストレージに書き込みます。ストレージは性能とディスク使用のために最適化されています。
デフォルトでは、 local
ドライバはコンテナごとに 100MB のログ・メッセージを維持し、ディスク上の容量を減らすために自動的に圧縮を使います。100MB のデフォルトの値とは、各ファイルのデフォルトサイズが 20M で、かつ、これらのファイル数がデフォルトでは 5 だからです(ログをローテーションする回数分です)。
注釈
local
ロギング・ドライバは、ファイルをベースとするストレージを使います。ファイル形式とストレージ機能は Docker デーモンのみが排他的にアクセスするよう設計されています。そのため、今後のリリースでの実装の影響を避けるため、外部のツールからは使われるべきではありません。
使い方¶
local
ドライバをデフォルトのロギング・ドライバとして使うためには、 daemon.json
ファイルで log-driver
と log-opt
キーに適切な値を設定します。ファイルは 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 を再起動し、それ以後作成するコンテナに対して有効になります。既存のコンテナは新しいログ設定は適用されません。
特定のコンテナに対してのみロギング・ドライバを指定したい場合は、 --log-driver
フラグを docker container create
か docker run
で指定します。
$ 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メガバイトを越えないように指定しています。
$ docker run -it --log-driver local --log-opt max-size=10m --log-opt max-file=3 alpine ash
参考
- Local File logging driver
- https://docs.docker.com/config/containers/logging/local/