問題描述
程序運行時產生的日誌文件,逐漸積累又沒有得到及時處理的時候,會慢慢的把服務器上的磁盤佔用的越來越多。這種問題有時候咱們會覺得是日誌文件書寫的時候把控的不嚴格,沒有控制好日誌級別等,但是有時候在測試環境部署的時候,是需要在一些重要的程序運行環節記錄一些日誌內容的,加之可能測試環境分配的機器配置低一些,同一個服務器上部署的容器多一些的時候,這種問題還是很容易出現的。
問題調查過程
首先我們確認了是日誌導致的問題,加上了解我們的日誌是有掛載到服務器本地的路徑的,所以我們的小夥伴首先刪除了服務器本地掛載的日誌文件,然後df -hf發現情況磁盤佔用並沒有減少;所以就懷疑是不是容器內的日誌文件並沒有刪除;就docker exec -it xxxx /bin/bash 進入到容器並查看了對應的日誌文件夾下面發現,其實日誌文件是不存在了。
那麼到底文件被刪除了嗎?其實是標記刪除了,但是佔用的空間沒有被釋放。所以,小夥伴們簡單粗暴的將所有容器給docker stop =》docker rm 掉,然後重新docker run起來,這樣發現磁盤佔用的情況確實大為改觀了。
那麼我們就反思,有沒有更優雅的姿勢去解決這個問題,而不是每次都要去docker stop docker rm.。這個問題留在後邊來回答。