Docker容器日誌清理
阿新 • • 發佈:2019-01-09
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 =========================="