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的配置文件來實現bash
在docker的配置文件/etc/docker/daemon.json
(默認路徑)中添加如下內容便可rest
"log-opts": { "max-size": "500m", "max-file": "3" }
重啓docker進程日誌
systemctl daemon-reload systemctl restart docker
須要注意的是在這裏設置的日誌大小,只對新建的容器有效。code