dockerのログを定期的にクリアする方法は?
Dockerのログのクリーンアップは、定期的に以下の方法で行うことができます:
- Dockerは複数のログドライバをサポートしており、いくつかのドライバはログの自動クリーンアップ機能を提供しています。例えば、json-fileドライバを使用する場合、–log-opt max-sizeおよび–log-opt max-fileパラメータを設定して、各ログファイルの最大サイズと最大ファイル数を制御できます。これらの制限に達すると、Dockerは古いログファイルを自動的にクリーンアップします。
- 日誌フォワーディングツールを使用すると、logrotateやlogspoutなどのサードパーティ製のツールを使用して、Dockerログを定期的にクリーンアップすることができます。これらのツールは、設定されたルールに基づいて、Dockerログを定期的に圧縮、アーカイブ、削除することができます。
- 手動クリーニング:Dockerログをクリーンナップするために、スクリプトや定期タスクを作成して、Dockerコマンドやシステムコマンドを使用できます。例えば、docker logsコマンドを使用してコンテナのログを取得し、rmコマンドを使ってログファイルを削除することができます。
以下は、Dockerログを定期的にクリーンアップするためにlogrotateを使用する例です。
- logrotateツールをインストールする。
- sudo apt-get install logrotate を使ってインストールしてください。
- dockerのログローテーションのための設定ファイル、/etc/logrotate.d/dockerを作成してください。
- /var/lib/docker/containers/*/*.log {
7日間保存
毎日
圧縮
サイズ10M
欠落してもOK
圧縮までの遅延
コピーしつつ切り捨て
} - 前記の設定ファイルは、/var/lib/docker/containers/*/*.logディレクトリ内のログファイルを毎日ローテーションし、最大7つのログファイルを保持し、各ファイルの最大サイズは10Mで、圧縮保存されます。copytruncateパラメータは、ログファイルがローテーションされる際にファイルハンドルを維持するために使用されます。
- logrotateコマンドを実行してログを手動でクリーンアップしてください。
- $ sudo logrotate /etc/logrotate.d/docker を実行してください。
- 定時タスクに上記のコマンドを追加して定期的に実行し、ログを自動的にクリーンアップすることができます。
注意:日志清理的具体步骤可能因操作系统、Docker版本等略有不同,上述内容只是一般示例。请查阅相关文档和工具的官方说明进行操作。