Docker容器日誌清理方案

Docker容器在運行過程當中會產生不少日誌,長此以往,磁盤空間就被佔滿了,如下分享docker容器日誌清理的幾種方法linux

刪除日誌

在linux上,容器日誌通常存放在 /var/lib/docker/containers/container_id/ 下, 以json.log結尾,找到這些文件,刪除便可,須要注意的是若是容器處在運行狀態,使用 rm -rf 方式刪除日誌後,經過 df -h 會發現磁盤空間並無釋放,緣由是在Linux或者Unix系統中,經過 rm -rf 或者文件管理器刪除文件,將會從文件系統的目錄結構上解除連接(unlink);若是文件此時是被打開的(有一個進程正在使用),那麼進程將仍然能夠讀取該文件,磁盤空間也一直被佔用;因此經過rm -rf刪除日誌時須要重啓docker,以釋放資源,這樣很是不方便。docker

因此清理docker日誌的正確方法是json

cat /dev/null > *-json.log

從根本上解決Docker容器日誌空間佔用問題

經過以上兩種方式清理以後,隨着時間的推移,容器日誌又會逐漸增大,可謂指標不治本,要從根本上解決問題,須要限制容器服務的日誌大小上限;這個經過修改docker的配置文件來實現bash

在docker的配置文件/etc/docker/daemon.json(默認路徑)中添加如下內容便可rest

"log-opts": {
       "max-size": "500m",
       "max-file": "3"
    }
  • max-size=500m,意味着一個容器日誌大小上限是500M
  • max-file=3,意味着一個容器有三個日誌,分別是id+.json、id+1.json、id+2.json

重啓docker進程日誌

systemctl daemon-reload
systemctl restart docker

須要注意的是在這裏設置的日誌大小,只對新建的容器有效。code

相關文章
相關標籤/搜索