説明
コンテナで運用していると、どんどんログがたまってしまい、サーバの容量を圧迫してしまいます。
それを防ぐためのログの管理が必要です。
環境:CentOS7, Docker, docker-compose
コンテナのログの見方
通常コンテナのログを見る際は、
docker logs -f [コンテナ名|コンテナID]
で十分ですが、じゃあコンテナのログはいったいどこに置かれているかというと、
/var/lib/docker/containers/コンテナID/コンテナID-json.log
になります。
全てのコンテナにログローテション設定
/etc/docker/daemon.jsonファイルを新規作成→サービス再起動します。
サービス再起動後に新規で作成されたコンテナが新しく反映されるようになります。
既存のコンテナ反映されません。
下記は10Mのログを5世代まで持てるようにします。
$ vi /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "5" } } [root@hogehoge]$ systemctl daemon-reload [root@hogehoge]$ systemctl restart docker
各コンテナにログローテション設定(docker-compose編)
docker-compose.ymlに記載することで、各コンテナにログローテションを設定することができます。
version: '3' services: app: image: httpd:latest logging: driver: "json-file" options: max-size: "10m" max-file: "5" volumes: - ./src:/var/www/html ports: - 8080:8080
コメント