banner
云野阁

云野阁

闲云野鹤,八方逍遥

docker容器日誌配置管理

運行的項目容器突然就停了,查看容器日誌發現磁碟空間不足,導致容器沒法運行了。

Error response from daemon: Cannot restart container docker-p: mkdir /home/dockerData/overlay2/7bef1e2fa4788ab4d5db7e2e850d7ceeed09185b55c175f20c1500d28a0cc874d: 設備上沒有剩餘空間

先使用df -h看下磁碟使用情況。

overlay 413G 413G 0 100% /home/dockerData/overlay2/fea24dfbbe9f7d6d8309....../merged
overlay 413G 413G 0 100% /home/dockerData/overlay2/7bef1e2fa4788ab4d5db....../merged

容器的存儲目錄/home/dockerData/(其默認存儲目錄是/var/lib/docker,我這兒是重新配置的)直接把磁碟用完了。

找到原因就好辦了,直接到容器的存儲目錄/home/dockerData/先後使用du -sh命令分別查看overlay2containers兩個目錄以及裡面的文件。發現 containers 目錄裡的容器文件98bbe7f17fa335f1b6e17......佔用了 409G。

du -sh overlay2
3.7G overlay2

du -sh containers/98bbe7f17fa335f1b6e17......
409G containers/98bbe7f17fa335f1b6e17......

再深入容器文件發現,源頭是容器的日誌文件98bbe7f17fa335f1b6e17......-json.log

把這個日誌文件進行刪除之後,再重啟容器,業務就恢復正常了。

為防止這種情況再次發生,需要在 Docker 守護程序/etc/docker/daemon.json配置日誌記錄驅動程序,配置具體內容如下:

  "log-driver":"json-file",
  "log-opts":{"max-size" :"50m","max-file":"2"}

"log-driver":"json-file" Docker 的默認日誌記錄驅動程序。日誌格式為 JSON。

"max-size" :"50m" 日誌切割前的最大為 50M。

"max-file":"2" 保留的最大日誌文件數量為 2。

配置完成後,重啟 docker。

sudo systemctl daemon-reload
sudo systemctl restart docker

關於 docker 的日誌更多相關內容,可參考下面鏈接中的內容。

https://segmentfault.com/a/1190000023144155

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。