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ストレージドライバの構造.

https://www.joinc.co.kr/w/man/12/docker/storage 参照.

results matching ""

    No results matching ""