clean.sh (參考鏈接:https://www.cnblogs.com/98record/p/docker-qing-li-ri-zhi-jiao-ben.html)
#!/bin/sh
# 此腳本為日常清理docker日志
# docker 容器的路勁日志為 /var/lib/docker/containers/? 下-json.log
# 清理的方式有兩種
# 1消恍、直接RM -f /var/lib/docker/containers/ *-json.log
# 這種方式必須停止docker才能釋放空間,否則日志文件一直處于寫入(占用)狀態(tài)豺总,無法清理
# 2车伞、使用cat /dev/null > $log 方式,這樣可以直接替換日志文件里面的內(nèi)容喻喳,將日志直接清空
# 本腳本使用的是第二種方法
# 開始清理日志提示
echo? "====================$(date "+%Y-%m-%d %H:%M:%S") Start clean docker containers logs >= 1G =========================="
#定義日志路徑
logs=$(find /var/lib/docker/containers/ -name *-json.log -type f -size +1G)
for log in $logs
? ? ? ? do
? ? ? ? ? ? ? ? echo "clean logs : $log"
? ? ? ? ? ? ? ? cat /dev/null > $log
? ? ? ? done
# 清理完成
echo "==================== $(date "+%Y-%m-%d %H:%M:%S") end clean docker containers logs? =========================="
docker system prune 命令可以用于清理磁盤另玖,刪除關(guān)閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無tag的鏡像)
(一定要慎重執(zhí)行谦去,因?yàn)橛行╃R像是手動(dòng)導(dǎo)入的慷丽,會(huì)誤刪鏡像image) docker system prune -a 命令清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉
root@master:/var/lib/docker/overlay2# find . / -name *json.log
搜索所有的日志文件
在目錄中會(huì)存在以目錄名為前綴鳄哭,以“-json.log”為后綴的目錄文件要糊。使用如下命令會(huì)看到該文件的大小:
ll -h
然后可使用如下命令對該文件的內(nèi)容進(jìn)行清理:
cat /dev/null > *-json.log
清理完成可不重啟服務(wù)妆丘,但如果允許建議重啟一下docker服務(wù)锄俄。
在此執(zhí)行df -h命令之后,你會(huì)發(fā)現(xiàn)overlay2所占的磁盤空間已經(jīng)減小飘痛。
使用Docker過程中珊膜,長時(shí)間運(yùn)行服務(wù)容器,導(dǎo)致不能進(jìn)行上傳文件等操作宣脉,通過命令df -h 發(fā)現(xiàn)overlay占用較高。通過命令
(一定要慎重執(zhí)行剔氏,因?yàn)橛行╃R像是手動(dòng)導(dǎo)入的塑猖,會(huì)誤刪) docker system prune -a?
清理無用鏡像、緩存谈跛、掛載數(shù)據(jù)
prune指令默認(rèn)會(huì)清除所有如下資源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所關(guān)聯(lián)的網(wǎng)絡(luò)(network)
所有懸空鏡像(image)羊苟。
Docker中查詢磁盤占用情況:
docker system df
https://blog.csdn.net/sky527759/article/details/122834872
find / -type f -size +1G
-type f? :文件類型,-type d:文件夾感憾,-size +1G查找超過1G的文件
【最徹底的辦法蜡励,但也是最復(fù)雜的】,把該node節(jié)點(diǎn)排水排掉阻桅,刪除overlay目錄凉倚,然后再加入進(jìn)來
使用 kubectl drain 從集群中移除節(jié)點(diǎn)
1、kubectl drain
2嫂沉、systemctl stop docker
3稽寒、systemctl stop kubelet
4、刪除overlay
5趟章、kubectl uncordon <node name>