コンテナのログ管理は、運用やトラブルシューティングにおいて非常に重要です。Dockerでは、デフォルトではコンテナのログはJSON形式でstdoutに出力されますが、このログのローテーションについては設定されていません。

ログローテーションは、古いログを削除して新しいログを作成することでディスクスペースを節約し、ログファイルのサイズを制限することができます。Dockerでは、ログローテーションの設定を行うことで、コンテナのログを定期的にローテーションし、容易に管理することができます。

デフォルトのロギング・ドライバの設定

デフォルトのロギングドライバの設定はDockerのインストール時に合わせて設定しておいたほうがよいでしょう。

コンテナのデフォルトのログローテーションを設定するには、/etc/docker/daemon.jsonファイルを編集します。まず、以下のコマンドを使用して、/etc/docker/daemon.jsonファイルを作成します。

sudo touch /etc/docker/daemon.json

次に、以下のようにdaemon.jsonファイルを編集し、ログローテーションの設定を追加します。以下の例では、ログファイルの最大サイズを10MB、最大ファイル数を3つに設定しています。これにより、ログファイルが一定のサイズに達すると、古いログファイルが自動的にローテーションされ、新しいログファイルが生成されます。

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

上記ファイルを設定したあと以下のコマンドを実行して反映させます。

systemctl daemon-reload
systemctl restart docker

ログファイルの最大サイズは、"max-size"パラメータで指定します。この値を超えた場合、古いログファイルが削除され、新しいログファイルが生成されます。最大ファイル数は、"max-file"パラメータで指定します。この値を超えた場合、最も古いログファイルが削除されます。

docker-compose.ymlでのロギング・ドライバ設定

docker-compose.ymlファイルでログローテーションの設定をするには、以下のようにloggingセクションを追加し、optionsにログローテーションの設定を追加します。

services:
  my_service:
    image: my_image
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

上記の例では、ログファイルの最大サイズを10MB、最大ファイル数を3つに設定しています。driverパラメータには、使用するログドライバを指定します。上記の例では、json-fileドライバを使用しています。

設定を変更した場合は、docker-compose upコマンドを使用してサービスを再起動する必要があります。

docker-compose up -d

これで、docker-compose.ymlファイルでログローテーションの設定を行うことができます。

コンテナログ を手動でクリアする場合

コンテナのstdoutとstderrは/var/lib/docker/containers/[container-id]/[container-id]-json.logに書き込まれます。

手動でログをクリアする場合は以下のコマンドでクリアできます。

truncate -s 0 <logfile>

jsonログファイルを定期的にクリアするには、cronjobを設定することができます。しかし、長期的に考えるとログローテーションを設定する方が安全です。

Udemy 独学でのアプリ開発に限界を感じたら

プログラミング初学者の皆さんに、 Udemy を強くお勧めしたいと思います。 Udemy は世界中のトップレベルのプログラミング講師が提供するオンライン講座を取り揃えています。以下は、 Udemy で学ぶことのメリットについての詳細です。

1. Udemy の豊富なコースの選択肢

Udemyには、数千ものコースがあります。初心者から上級者まで、プログラミングのあらゆるレベルを網羅しています。また、様々なプログラミング言語やツールに関するコースも多数あり、希望に合わせたコースを選ぶことができます。

2. 実践的な学習方法

Udemyのコースは、理論だけでなく実践的な学習も行えます。多くのコースには、プログラムの作成や実際のプロジェクトに取り組む演習が含まれています。これにより、理論だけでなく実践的なスキルも身につけることができます。

3. Udemy には質の高い講師陣

Udemyの講師陣には、世界中のトップレベルのプログラマーが多数在籍しています。彼らは、実務での経験を活かして、分かりやすい講義を行っています。

4. 初学者が始めるのにとても手頃な価格

Udemyのコースは、他のオンライン講座と比べて手頃な価格で提供されています。また、一度購入すると、終身アクセスが得られるので、自分のペースで学習することができます。

以上の理由から、プログラミング初学者の方には、Udemyが最適な学習プラットフォームであると考えられます。ぜひ一度、Udemyのコースを体験してみてください。


ウェブ開発の人気オンラインコース


ITとソフトウェアの人気オンラインコース


デザインの人気オンラインコース