ホームページ  >  記事  >  運用・保守  >  Docker ログをクリアする方法

Docker ログをクリアする方法

王林
王林オリジナル
2020-05-21 10:39:304969ブラウズ

Docker ログをクリアする方法

1. Docker コンテナ ログの検索

Linux では、コンテナ ログは通常、/var/lib/docker/containers/container_id/ に保存されます。 json.log で終わるファイル (ビジネス ログ) は非常に大きいです。各ログ ファイルのサイズについては、スクリプト docker_log_size.sh を確認してください。内容は次のとおりです。

#!/bin/sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
	ls -lh $log
done

次のコマンドを実行します。

# chmod +x docker_log_size.sh
# ./docker_log_size.sh

2 、Docker コンテナのログをクリーンアップします

Docker コンテナが実行中の場合、rm -rf メソッドを使用してログを削除した後、ディスク領域が解放されていないことがわかります。 df -h コマンドを使用します。

その理由は、Linux または Unix システムでは、rm -rf またはファイル マネージャーを使用してファイルを削除すると、ファイル システムのディレクトリ構造からリンクが解除 (アンリンク) されるためです。ファイルが開いている (プロセスによって使用されている) 場合でも、プロセスはファイルを読み取ることができ、ディスク領域は占有されたままになります。

正しい方法はcat /dev/null > *-json.logです。もちろん、rm -rfで削除してdockerを再起動することもできます。次に、次の内容を含むログ クリーニング スクリプト clean_docker_log.sh を提供します:

#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
	echo "clean logs : $log"
	cat /dev/null > $log
done
echo "======== end clean docker containers logs ========

次に、次のコマンドを実行します:

# chmod +x clean_docker_log.sh
# ./clean_docker_log.sh

推奨チュートリアル: dockertutorial

以上がDocker ログをクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。