Docker容器日誌清理

weixin_34402408發表於2017-12-21

docker容器導致主機磁碟空間滿了

如何清理Docker容器日誌?

如何找出docker容器日誌檔案

容器日誌一般存放在/var/lib/docker下面,可使用如下命令檢視各個日誌的檔案大小

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

如何清理日誌

如果docker容器正在執行,那麼使用rm -rf 方式刪除日誌後,通過df -h會發現磁碟空間並沒有釋放

原因:在Linux或者Unix系統中,通過rm或者檔案管理器刪除檔案將會從檔案系統的目錄結構上解除連結(unlink).然而如果檔案是被開啟的(有一個程式正在使用),那麼程式將仍然可以讀取該檔案,磁碟空間也一直被佔用

正確姿勢是cat /dev/null > *-json.log,當然你也可以通過rm刪除後重啟docker

清理指令碼:

#!/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  =========================="

相關文章