VMでコンテナを実行しています。コンテナーは、ディスクがいっぱいになるまで、デフォルトでログを/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.logファイルに書き込みます。
現在、ディスクがいっぱいになるのを避けるために、このファイルを手動で削除する必要があります。 Docker 1.8では、 ログを回転させる のパラメーターがあることを読みました。現在の回避策として何をお勧めしますか?
ログローテーションオプションを備えたDocker 1.8がリリースされました。追加:
--log-opt max-size=50m
コンテナが起動すると、トリックが行われます。詳細については、 https://docs.docker.com/engine/admin/logging/overview/ をご覧ください。
注意:これはdocker-composeバージョン2専用です
例:
version: '2'
services:
db:
container_name: db
image: mysql:5.7
ports:
- 3306:3306
logging:
options:
max-size: 50m
注意:この投稿は、ドッカーバージョン<1.8(--log-opt
オプションを持たない)に関連しています
なぜlogrotate(圧縮もサポートしています)を使用しないのですか?
/var/lib/docker/containers/*/*-json.log {
hourly
rotate 48
compress
dateext
copytruncate
}
CoreOs Nodeで直接設定するか、/ var/lib/dockerをマウントしてコンテナーを展開します(例 https://github.com/tutumcloud/logrotate )。ログ。
コンテナの実行中にログオプションを渡します。例は次のようになります
Sudo docker run -ti --name visruth-cv-container --log-opt max-size=5m --log-opt max-file=10 ubuntu /bin/bash
ここで、--log-opt max-size=5m
は最大ログファイルサイズを5MBに指定し、--log-opt max-file=10
はローテーションするファイルの最大数を指定します。