Docker ログのクリーンアップ方法とは?
Docker コンテナのログは次の方法で削除できます。
- Docker APIまたはDocker CLIコマンドを使用してログを消去する: docker logs –tail=0 -f コマンドを使用してコンテナログを表示し、docker logs –tail= コマンドを使用して特定行数のログを表示できます。コンテナのログを削除する必要がある場合は、/var/lib/docker/containers//-json.logファイルの削除でコンテナのログを消去できます。
- Docker ログファイルの定期的なクリーニング:スケジュールタスクツール(例:Cron)を使用して定期的なジョブタスクを作成し、古いまたはサイズの大きな Docker ログファイルを削除することで、定期的にクリーニングを実行できます。期限切れのログファイルは、たとえば「find /var/lib/docker/containers/ -name ‘*-json.log’ -mtime +7 -exec rm {} \;」などのコマンドを使用して検索して削除できます。これは 7 日前のログファイルを削除します。
- Dockerログドライバの設定: コンテナ作成または管理時に、Dockerのログドライバを設定することで、ログの生成と保存を制御できます。例として、`–log-driver=none`パラメータを使用してロギングを無効化したり、`–log-opt max-size=`パラメータを使用してログファイルの最大サイズを設定し、自動的に切り分けとクリーンアップを行ったりできます。
- サードパーティのログ管理ツールを利用する:ELKスタック(Elasticsearch、Logstash、Kibana)やSyslogなどのサードパーティのログ管理ツールを活用することで、Dockerコンテナのログを一元管理・集約できます。これらのツールはログの収集、検索、フィルタリング、保存などの高度なログ管理機能を提供します。
Dockerのログを削除する時は慎重に操作し、重要なログ情報を削除しないように注意してください。定期的にログを削除すればディスク上の空き容量が増え、システムの性能も上がりますが、逆にコンテナの古い操作履歴や障害解析を追跡できなくなる可能性があります。そこで、ログを削除する前に重要なログデータはバックアップするか、アーカイブしておいてください。