來(lái)源于:http://blog.csdn.net/xunzhaoyao/article/details/72959917
docker容器導(dǎo)致主機(jī)磁盤空間滿了
容器日志一般存放在/var/lib/docker下面阶界,可使用如下命令查看各個(gè)日志的文件大小
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
如何清理日志
如果docker容器正在運(yùn)行,那么使用rm -rf 方式刪除日志后刹勃,通過(guò)df -h會(huì)發(fā)現(xiàn)磁盤空間并沒(méi)有釋放
原因:在Linux或者Unix系統(tǒng)中剩蟀,通過(guò)rm或者文件管理器刪除文件將會(huì)從文件系統(tǒng)的目錄結(jié)構(gòu)上解除鏈接(unlink).然而如果文件是被打開的(有一個(gè)進(jìn)程正在使用),那么進(jìn)程將仍然可以讀取該文件苦酱,磁盤空間也一直被占用
正確姿勢(shì)是cat /dev/null > *-json.log售貌,當(dāng)然你也可以通過(guò)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 =========================="