[JP] How to configure container log rotation for the Docker daemon
This document (000020051) is provided subject to the disclaimer at the end of this document.
Situation
背景
Dockerのデフォルト設定では、json-fileログドライバーを使用して制限なしでコンテナーログを記録するため、ノードでdisk-fill eventsが発生する可能性があります。この記事では、Dockerを実行しているノードを構成して、コンテナーログサイズを制限し、古いコンテナーログをローテーションする手順について説明します。
事前準備
- json-fileログドライバーを使用してDockerを実行しているノード
/etc/docker/daemon.json
を編集し、Dockerデーモンを再起動する権限
注意
- 新しく作成されたコンテナに変更を有効にするには、Dockerデーモンを再起動する必要があります
- 重要 既存のコンテナのコンテナログ設定は変更なしのため、既存のコンテナは自動的に新しいログ設定を適用されません。新しい設定を使うにはコンテナを再デプロイする必要があります。
解決方法
- Dockerデーモンの設定ファイルを編集します:
$ vim /etc/docker/daemon.json
- 次の内容をファイルに追加して、最大コンテナログファイルサイズを10MBに、ローテーションする最多のログファイルを10個に設定します。
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "10"
}
}
- dockerデーモンを再起動して、設定を新しいコンテナーに適用します(上記の 重要 注意を参照)。
$ systemctl restart docker
ヒント
このログローテーションの設定をビルド/構成管理システムに導入すると、ノードをプロビジョニング時に自動的に適用され、手動で設定する必要がなくなります。
参考
Docker JSON file log driver documentation
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.