如何清理Docker容器日志摧冀?
如何找出docker容器日志文件
容器日志一般存放在/var/lib/docker下面腮猖,可使用如下命令查看各個日志的文件大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
(直觀)
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
如何清理日志
如果docker容器正在運行饮焦,那么使用rm -rf 方式刪除日志后闪湾,通過df -h會發(fā)現(xiàn)磁盤空間并沒有釋放
原因:在Linux或者Unix系統(tǒng)中遍膜,通過rm或者文件管理器刪除文件將會從文件系統(tǒng)的目錄結(jié)構(gòu)上解除鏈接(unlink).然而如果文件是被打開的(有一個進(jìn)程正在使用)爵赵,那么進(jìn)程將仍然可以讀取該文件,磁盤空間也一直被占用洲劣。
正確姿勢是cat /dev/null > *-json.log
备蚓,當(dāng)然你也可以通過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 ====================="
賦予可執(zhí)行權(quán)限
chmod +x clean_docker_log.sh