米国の第3代大統領(トーマス・ジェファーソン)はかつて、「他の人が信じたり否定したりするからといって、何かを信じたり否定したりしないでください。神はあなたに真実と誤りを判断する心を与えてくれました。そうすれば、それを使うことができます!」 。
一緒に走らない日は頑張ってね!
検索
通常、dockerを使用してテスト環境プログラムをデプロイしますが、デプロイされていません。最後に、Dockerコンテナーで実行されているログが多すぎるため、システムストレージがいっぱいになり、サービスに正常にアクセスできなかったことがわかりました。(最高のログレベルのデバッガーがサービスで有効になっています)。
問題が発生した場合は、それを解決する方法を見つけてください。Baiduはそれを持っており、最終的に解決策を見つけました。ここにメモしてください。
ログ分類
ログは2つのカテゴリに分けられます。1つはDockerエンジンログで、もう1つはコンテナログです。
- Dockerエンジンログ
Dockerエンジンログは通常、Upstart(Ubuntu 14.04)またはsystemd(CentOS 7、Ubuntu 16.04)に渡されます。前者は通常/var/log/upstart/docker.logの下にあり、後者は通常jounarlctl -udockerによって読み取られます。異なるシステムの場所は異なります。以下を参照してください。
システム | ログの場所 |
---|---|
Ubuntu(14.04) | /var/log/upstart/docker.log |
Ubuntu(16.04) | journalctl -u docker.service |
CentOS 7 / RHEL 7 / Fedora | journalctl -u docker.service |
CoreOS | journalctl -u docker.service |
OpenSuSE | journalctl -u docker.service |
OSX | 〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / log / d ocker.log |
Debian GNU / Linux 7 | /var/log/daemon.log |
Debian GNU / Linux 8 | journalctl -u docker.service |
Boot2Docker | /var/log/docker.log |
- Dockerコンテナログ
各コンテナのログは、デフォルトで/ var / lib / docker / containers / <container id> / <container id> -json.logにjsonファイル形式で保存されます。
- すべてのコンテナのログファイルを検索する
find /var/lib/docker/containers -name *.log
- ログの場所を表示する
docker inspect --format='{
{.LogPath}}' <container_name>
- リアルタイムクエリコンテンツ
tail -f `docker inspect --format='{
{.LogPath}}' <container_name>`
- ログを表示およびクリーンアップするためのスクリプトの作成
dockerによって生成されたログとファイルの保存場所を表示する方法がわかったので、スクリプトの作成を開始しましょう。参照は次のとおりです。
- コンテナのログサイズを表示する— logs_file_size.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
- ログをクリーンアップします— clean_containers_logs.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 ========"
cat / dev / null> logは、logがL O Gテーブルには、空になったログファイルの内容が表示されます
shlogs_file_size.shとshclean_containers_logs.shを介して2つのシェルスクリプトを実行できます。
参考記事:
https ://wxnacy.com/2018/06/14/docker-log/
https://www.cnblogs.com/YatHo/p/7866029.html
https://www.choupangxia.com/2019/ 09/15 / linux-centos-var-lib-docker-container