liunx內(nèi)存滿了,docker中overlay2爆表解決方案
liunx內(nèi)存滿了,docker中overlay2爆表
最近做項(xiàng)目發(fā)現(xiàn)了一個(gè)問(wèn)題,我在liunx運(yùn)行了nacos服務(wù),但是在上傳的時(shí)候發(fā)現(xiàn)了這個(gè)問(wèn)題
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. /home/nacos/work/Tomcat/localhost/nacos/upload_6409cdc9_9dcc_4f8c_9029_a1672a38bf20_00000002.tmp (No space left on device)
說(shuō)明了一個(gè)問(wèn)題
Liunx內(nèi)存中不夠內(nèi)存再分配了。
于是趕緊到Liunx中查看
執(zhí)行以下命令:
df -h

看到root爆炸100%,以及overlay也是爆滿了
網(wǎng)上找了很多操作,甚至啟用了docker system pruna(刪除長(zhǎng)時(shí)間未使用的容器 未掛在容器 關(guān)閉的容器等) 容器的刪除,操作,但是這個(gè)操作很危險(xiǎn),還是建議不這樣做
采取另外一種方案:清理內(nèi)存:刪除Log日志,一些不用的數(shù)據(jù)卷等
因?yàn)椋绻愕膁ocker長(zhǎng)時(shí)間運(yùn)行,它就會(huì)產(chǎn)生非常多的Log日志,這就需要清理
具體操作如下:
1、清理 /var/lib/docker/containers 目錄
先創(chuàng)建清理腳本文件,這里名為 docker_logs_clean.sh ,可以自定義,命令如下:
touch docker_logs_clean.sh # 賦予修改權(quán)限 chmod +777 docker_logs_clean.sh
加入如下腳本:
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean containers logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"執(zhí)行腳本:
sh docker_logs_clean.sh start
2、清理 /var/lib/docker/volumes 目錄
這個(gè)操作清理日志
find /var/lib/docker/volumes -name "*.log"
可以看到長(zhǎng)時(shí)間運(yùn)行有非常多的日志沒(méi)有清理

執(zhí)行以下命令進(jìn)行清除
find /var/lib/docker/volumes -type f -name "*.log" -delete
通過(guò)上述兩種清理方式,再查看內(nèi)存如下:

整體的使用率都降下來(lái)了,包括root占用也下降了不少
非常實(shí)用?。?!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker?Desktop安裝指南及漢化超詳細(xì)教程
Docker?Desktop是一種開(kāi)源的應(yīng)用容器引擎,它允許開(kāi)發(fā)者將他們的應(yīng)用及依賴項(xiàng)打包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,這篇文章主要介紹了Docker?Desktop安裝指南及漢化的相關(guān)資料,需要的朋友可以參考下2026-05-05
詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置
本篇文章主要介紹了詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Docker自定義網(wǎng)絡(luò)詳細(xì)介紹
大家好,本篇文章主要講的是Docker自定義網(wǎng)絡(luò)詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
jenkins構(gòu)建Docker 鏡像實(shí)例詳解
這篇文章主要介紹了 jenkins構(gòu)建Docker 鏡像實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
docker容器間進(jìn)行數(shù)據(jù)共享的三種實(shí)現(xiàn)方式
本文主要介紹了docker容器間進(jìn)行數(shù)據(jù)共享的三種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
解決Ubuntu中Docker安裝時(shí)“無(wú)法找到軟件包”錯(cuò)誤的解決方案
在Ubuntu中安裝Docker時(shí)遇到“無(wú)法找到軟件包”錯(cuò)誤,通常是由于軟件源未正確配置或更新、軟件包名稱(chēng)錯(cuò)誤或已更改等原因造成的,解決方法包括添加Docker官方軟件源、更新軟件包列表、重新安裝Docker等2026-01-01

