1. 程式人生 > >Docker容器日誌清理

Docker容器日誌清理

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

清理指令碼:

  1. #!/bin/sh  
  2. echo "==================== start clean docker containers logs =========================="  
  3. logs=$(find /var/lib/docker/containers/ -name *-json.log)  
  4. for log in $logs  
  5.         do  
  6.                 echo "clean logs : $log"  
  7.                 cat /dev/null > $log  
  8.         done  
  9. echo "==================== end clean docker containers logs   =========================="