Dockerコンテナディスク管理
Container内でstdout、stderrに出力を送信docker overlay storage driverを使用する場合、$ DOCKERROOT/ containers/{containerid}/containerid-json.logファイルに保存され、特別な措置をしていない場合は、継続的に増加することになる。これを防止するために、以下の該当するディレクトリにlogrotation設定ファイルを追加します。下/ data/ dockerディレクトリが$ DOCKER_ROOTある.
1./etc/logrotate.d/docker-container
# Added by cube
/data/docker/containers/*/*.log {
daily
rotate 4
compress
size=10M
missingok
delaycompress
copytruncate
}
- ローテート周期 daily、weekly、monthly、yearlyを選択することができる。
- rotate:rotateされるファイルを最大4つまで保持し、以前のファイルを削除する。
- compress:バックアップファイルをgzip圧縮する。圧縮したくない場合nocompressを設定すればよい。
- copytruncate:ほとんどのよく作ったアプリケーションは、ログファイルを新規作成のためのシグナル処理コードを持っている。しかし、そうでないアプリケーションもある。copytruncateを使用すると、元のファイルを消去せずに truncate(ファイルサイズを0にする)する。アプリケーションは、ファイルが失わないため、引き続きログを書き込むことができる。ただし、ファイルをコピーして、truncateする瞬間ログを失ってしまうこともある。
- size:sizeより、ログファイルが大きい場合ローテーションを行う。M(メガ)、K(キロ)単位で設定することができる。
2. Dockerストレージドライバの構造.