[JP] How to configure container log rotation for the Docker daemon

Follow
Table of Contents

背景

Dockerのデフォルト設定では、json-fileログドライバーを使用して制限なしでコンテナーログを記録するため、ノードでdisk-fill eventsが発生する可能性があります。この記事では、Dockerを実行しているノードを構成して、コンテナーログサイズを制限し、古いコンテナーログをローテーションする手順について説明します。

事前準備

  • json-fileログドライバーを使用してDockerを実行しているノード
  • /etc/docker/daemon.jsonを編集し、Dockerデーモンを再起動する権限

注意

  • 新しく作成されたコンテナに変更を有効にするには、Dockerデーモンを再起動する必要があります
  • 重要 既存のコンテナのコンテナログ設定は変更なしのため、既存のコンテナは自動的に新しいログ設定を適用されません。新しい設定を使うにはコンテナを再デプロイする必要があります。

解決方法

  1. Dockerデーモンの設定ファイルを編集します:

    $ vim /etc/docker/daemon.json
  2. 次の内容をファイルに追加して、最大コンテナログファイルサイズを10MBに、ローテーションする最多のログファイルを10個に設定します。

    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "10"
      }
    }
  3. dockerデーモンを再起動して、設定を新しいコンテナーに適用します(上記の重要注意を参照)。

    $ systemctl restart docker

ヒント

このログローテーションの設定をビルド/構成管理システムに導入すると、ノードをプロビジョニング時に自動的に適用され、手動で設定する必要がなくなります。

参考

Docker JSON file log driver documentation

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.