事情是這樣的,前兩天客戶的服務器忽然斷電了,致使用docker部署的服務也掛了。昨天去現場,重啓了docker,同時準備更新一下服務。結果發現有一臺節點硬盤滿了…docker
仍是以爲有些奇怪的,畢竟docker的安裝盤有800多個G的空間,以前也只用了100左右,以爲有點奇怪,就開始了排錯。服務器
自己機器只有咱們一家在用,因此不存在被佔用的狀況。因而使用下面命令查看是否是硬盤真被佔滿了:網絡
df -h
結果然的是佔滿了😂ui
再用下面命令查看哪一個文件夾太大:.net
du -sh *
發現是 /var/lib/docker/overlay 佔滿了code
網上查一下這個目錄的做用,說是 overlay/overlay2表示Docker的存儲驅動,能夠參考一下這篇文章:https://blog.csdn.net/styshoo/article/details/60715942blog
也就是說容器/鏡像等都會存在這個目錄下,當量大的時候就會佔滿硬盤。資源
也能夠參考官網(https://docs.docker.com/storage/storagedriver/overlayfs-driver/)部署
繼續在網上搜資料,說能夠看看是否是死掉容器過多的緣由,使用 docker ps -a看了下,果真是。因而清理了一下無用的容器,硬盤就恢復正常了……get
多看了一下資料,發現可使用 docker system prune來自動清理空間,參考下面:
-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