首頁 > 運維 > Docker > 如何清空docker日誌

如何清空docker日誌

王林
發布: 2020-05-21 10:39:30
原創
5064 人瀏覽過

如何清空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或檔案管理器刪除文件,將會從檔案系統的目錄結構解除連結(unlink)。如果文件是被開啟的(有一個進程正在使用),那麼進程將仍然可以讀取該文件,磁碟空間也一直被佔用。

正確方法是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
登入後複製

推薦教學:docker教學

以上是如何清空docker日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板