docker的/var/lib/docker/overlay文件夾突然占滿了硬盤


場景描述

事情是這樣的,前兩天客戶的服務器突然斷電了,導致用docker部署的服務也掛了。昨天去現場,重啟了docker,同時准備更新一下服務。結果發現有一台節點硬盤滿了…

還是覺得有些奇怪的,畢竟docker的安裝盤有800多個G的空間,之前也只用了100左右,覺得有點奇怪,就開始了排錯。

排錯過程

本身機器只有我們一家在用,所以不存在被占用的情況。於是使用下面命令查看是不是硬盤真被占滿了:

df -h 

結果真的是占滿了😂

再用下面命令查看哪個文件夾太大:

du -sh * 

發現是 /var/lib/docker/overlay 占滿了

網上查一下這個目錄的作用,說是 overlay/overlay2表示Docker的存儲驅動,可以參考一下這篇文章:https://blog.csdn.net/styshoo/article/details/60715942

也就是說容器/鏡像等都會存在這個目錄下,當量大的時候就會占滿硬盤。

也可以參考官網(https://docs.docker.com/storage/storagedriver/overlayfs-driver/

繼續在網上搜資料,說可以看看是不是死掉容器過多的原因,使用 docker ps -a看了下,果然是。於是清理了一下無用的容器,硬盤就恢復正常了……

簡單辦法

多看了一下資料,發現可以使用 docker system prune來自動清理空間,參考下面:

  • 該指令默認會清除所有如下資源:
    • 已停止的容器(container)
    • 未被任何容器所使用的卷(volume)
    • 未被任何容器所關聯的網絡(network)
    • 所有懸空鏡像(image)。
  • 該指令默認只會清除懸空鏡像,未被使用的鏡像不會被刪除。
  • 添加 -a 或 --all 參數后,可以一並清除所有未使用的鏡像和懸空鏡像。
  • 可以添加 -f 或 --force 參數用以忽略相關告警確認信息。
  • 指令結尾處會顯示總計清理釋放的空間大小。

https://yq.aliyun.com/articles/272173

另外,使用下面命令可以查看docker所占的硬盤大小,如:

20190417 docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 104 5 77.78GB 71.39GB (91%) Containers 8 0 139MB 139MB (100%) Local Volumes 30 1 3.276kB 3.183kB (97%) Build Cache 0B 0B 

其實docker挺簡單的,把官方文檔的入門教程看完,就能用了。
再自己打個包試試,基本上就OK了。后面 遇到問題再深入,都可以。

當然,如果想買本書,那么我推薦這一本

深入淺出Docker 可以點擊直達京東

基本上就是官方文檔的中文譯本,所以流程上和官網文檔也是一致的,適合英文不好的朋友看

 

 

 

轉載自:  https://www.cnblogs.com/wswang/p/10736726.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM