DockerComposeには必ずログの設定をしよう
2019/08/14

DockerComposeを使って起動したDockerコンテナのログは、docker-compose logs SERVICE_NAMEで確認できる。

しかし、このログはコンテナを削除しない限りずっと残ってしまう。

ログが溜まれば、ディスクを圧迫してしまうことにもなるし、何万行もあるログを確認することになると、最新のログが表示されるまで何十秒もかかってしまう。

ログの設定を行い、快適なDockerライフを送りましょう。

DockerComposeでのログの設定

公式ドキュメント

私が開発環境で行っているログ設定はこちら。

services:
  app:
    logging:
      driver: json-file
      options:
        max-file: '1'
        max-size: 3m

ログを最新の3MBだけ記録しています。

設定について

driver

driver: json-file

ここでは、ログの保存方式を指定しています。
json-fileはデフォルトの設定で、その名の通りJSONファイルとして保存します。
他にも、syslog, awslogs, gcplogs など設定できます。

options

options:
  max-file: '1'
  max-size: 3m

1ログファイルmax-sizeまで保存され、max-file数のログファイルを残しておくことができます。

開発環境では、古いログは不要なので、最大3MBまで保存していれば十分でしょう。