2020-11-16 發現線上服務訪問不了報以下錯誤
登入伺服器df -h 檢視docker的overlay已用%100
然後查詢 linux 系統最大的10個檔案
find / -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -i{} du -sh {}
找出是docker的*-json.log日誌檔案有好幾個20幾個g的
然後找到日誌檔案將*-json.log日誌清空,命令 cat /dev/null > *****
du -sh * 檢視當前目錄下各檔案占用大小
但是,這樣清理之後,隨著時間的推移,容器日誌會像雜草一樣,捲土重來。要從根本上解決問題,需要限制容器服務的日誌大小上限。這個通過配置容器docker-compose的max-size選項來實現
解決方案
1.新建/etc/docker/daemon.json,若有就不用新建了。新增log-dirver和log-opts引數,樣例如下:
# vim /etc/docker/daemon.json
}
max-size=500m,意味著乙個容器日誌大小上限是500m,
max-file=3,意味著乙個容器有三個日誌,分別是id+.json、id+1.json、id+2.json。
// 重啟docker守護程序
# systemctl daemon-reload
# systemctl restart docker
注意:設定的日誌大小,只對新建的容器有效。
2.啟動容器時,可以通過引數設定日誌檔案的大小、日誌檔案的格式。
docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash
docker stats nginx 檢視容器執行狀態
執行容器的時候新增 docker run --name=nginx --cpus=1 -m=2g -d nginx 因為在執行容器的時候不指定資源限制的話,容器之間會競爭資源,甚至會影響服務的呼叫.
Ubuntu boot 佔滿解決方案
我們在安裝 window 和 ubuntu 雙系統的時候,往往會自定義 boot分割槽,一般網上的教程都會建議給 boot分割槽分配 200m 的大小。但是,系統公升級的時候,往往會是這個分割槽空間被佔滿,導致不能公升級,以下為針對這以問題的解決方法。造成這一問題的主要原因是因為系統公升級的時候會安...
docker服務假死解決方案
簡介本文內容有 1 手動清理假死的docker服務 1.1 找到假死的docker服務 執行docker ps命令找到容器id container id 1.2 先嘗試使用docker自帶的命令停止容器 docker stop container id 發現停不掉 1.3 手動查詢docker目錄下...
Docker 容器磁碟佔滿的幾種情況
本文是我自己最近遇到的兩種情況,後續有新發現再補充。參考文件 應用日誌過多 預設情況下,每個 docker 容器都有 10g 的儲存空間,當超出該大小時,容器就會出現問題。可以參考官方文件 dm.basesize 引數的說明來修改預設的容器大小 指定建立基本裝置時要使用的大小,這會限制影象和容器的大...