Docker Overlay2磁盤空間占用過(guò)大清理的方法實(shí)現(xiàn)
在日常線上環(huán)境中,我們通常會(huì)來(lái)做利用Docker來(lái)做容器化管理,通過(guò)運(yùn)行容器來(lái)執(zhí)行任務(wù)等。
但是,隨著業(yè)務(wù)量的不斷增大,容器的不斷啟動(dòng),往往會(huì)出現(xiàn)磁盤空間不足,
1、第一種情況
是因?yàn)閐ocker中部署的系統(tǒng)中日志內(nèi)容的不斷擴(kuò)大。
這種情況下,我們可手動(dòng),或定時(shí)任務(wù)清理。
對(duì)于/var/lib/docker/overlay2 空間占用,存在很多誤導(dǎo)的方法是去遷移路徑等。。
其實(shí)磁盤空間的占用和overlay沒(méi)關(guān)系,它的使用和真實(shí)的disk使用相同,overlay只是一個(gè)docker的虛擬文件系統(tǒng),真實(shí)的文件系統(tǒng)是前者/dev/vda1,可以看到路徑所指為根目錄。
所以,通過(guò)該目錄去查找哪里占用資源過(guò)大。
通常情況下與overlay2的同級(jí)目錄下會(huì)有如下的目錄:

占用大量空間的日志文件位于containers下,該目錄下存在如下目錄:

在該目錄下,會(huì)存在以目錄名為前綴,以“-json.log”為后綴的目錄文件。
例如:

使用如下命令會(huì)看到該文件的大小:ll -h
然后,使用> *-json.log ,將該文件進(jìn)行清理
清理完成可不重啟服務(wù),重啟更好
清理完后,可通過(guò)df -h 查看磁盤占用情況
2、第二種情況
可通過(guò)執(zhí)行docker system prune 命令可用于清理磁盤,刪除關(guān)閉的容器、無(wú)用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無(wú)tag的鏡像)
Docker中查詢磁盤占用情況:
docker system df

可看到Images占用了8.534G,Conainers占用244G。
docker system prune -a【慎用】命令清理更干凈、徹底,可以將沒(méi)有容器使用的Docker鏡像都刪掉。
這樣也可清理空間
3、最后,可通過(guò)安裝portainer 【Docker的圖形化管理工具】
Portainer是Docker的圖形化管理工具,提供狀態(tài)顯示面板、應(yīng)用模板快速部署、容器鏡像網(wǎng)絡(luò)數(shù)據(jù)卷的基本操作(包括上傳下載鏡像,創(chuàng)建容器等操作)、事件日志顯示、容器控制臺(tái)操作、Swarm集群和服務(wù)等集中管理和操作、登錄用戶管理和控制等功能。
1、可通過(guò)下列命令查詢當(dāng)前有哪些Portainer鏡像
docker search portainer

2、下載鏡像
docker pull docker.io/portainer/portainer
3、鏡像下載成功后,接下來(lái)啟動(dòng)容器
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer-test docker.io/portainer/portainer
執(zhí)行完該語(yǔ)句后,用宿主機(jī)9000端口關(guān)聯(lián)容器中的9000端口,并給容器起名為portainer-test。執(zhí)行完該命令之后,使用該機(jī)器IP:PORT即可訪問(wèn)Portainer。
訪問(wèn)方式:http://IP:9000
4、首次登錄時(shí),需要注冊(cè)用戶,給admin設(shè)置密碼:

如果是本機(jī)的話,可以選擇local,選擇完,點(diǎn)擊Connect即可連接到本地docker;

然后查看首頁(yè)中是不是掛載了很多Volumes:

如果存在很多Volumes,將【unuse】的全部給刪除掉【remove】掉,便可清掉很大空間。
清完之后,再回去看看磁盤占用。
df -hl
我這里就不做演示,因?yàn)闆](méi)必要清理。
4、最后,占用大量overlay文件內(nèi)存大小,可以選擇進(jìn)入你docker中的overlay目錄,通過(guò)du -sh *查看下面哪個(gè)目錄占用的內(nèi)存比較大,一般是里面的merged目錄和diff目錄下的bin中生成了太多的執(zhí)行文件,把那些刪掉就行了,只需要留下bash即可。
然后重啟docker服務(wù)
systemctl restart docker
到此這篇關(guān)于Docker Overlay2磁盤空間占用過(guò)大清理的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker Overlay2磁盤清理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker overlay2 文件夾比較大處理步驟
- 如何清理docker的overlay2 目錄
- docker overlay擴(kuò)容問(wèn)題
- Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
- Docker容器跨主機(jī)通信overlay網(wǎng)絡(luò)的解決方案
- Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例
- docker overlay實(shí)現(xiàn)跨主機(jī)的容器互通的方法
- docker容器間跨宿主機(jī)通信-基于overlay的實(shí)現(xiàn)方法
- docker清理大殺器/docker的overlay文件占用磁盤太大的解決
- docker中Overlay網(wǎng)絡(luò)的使用小結(jié)
相關(guān)文章
Docker自定義JDK鏡像并拉取至阿里云鏡像倉(cāng)庫(kù)超詳細(xì)攻略
Docker倉(cāng)庫(kù)是集中存放鏡像的地方,分為公共倉(cāng)庫(kù)和私有倉(cāng)庫(kù),這篇文章主要給大家介紹了關(guān)于Docker自定義JDK鏡像并拉取至阿里云鏡像倉(cāng)庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Docker部署前后端分離項(xiàng)目的三種方式小結(jié)
本文主要介紹了Docker部署前后端分離項(xiàng)目的三種方式小結(jié),包含通過(guò)兩個(gè)容器部署,通過(guò)compose編排容器自動(dòng)部署和將前后端項(xiàng)目打成一個(gè)鏡像部署的三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Docker 數(shù)據(jù)持久化的三種方式小結(jié)
本文主要介紹了Docker 數(shù)據(jù)持久化的三種方式小結(jié),主要包括volume、bind mounts、tmpfs mounts這三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
docker部署minio并使用springboot連接的操作方法
這篇文章主要介紹了docker部署minio并使用springboot連接的操作方法,本文以minio為例結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-11-11
在Docker中的ubuntu中安裝Python3和Pip的問(wèn)題
這篇文章主要介紹了在Docker中的ubuntu中安裝Python3和Pip的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
docker push遇到unknown blob問(wèn)題解決
這篇文章主要為大家介紹了docker push遇到unknown blob問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Docker使用編寫dockerfile啟動(dòng)node.js應(yīng)用
這篇文章主要介紹了Docker使用編寫dockerfile啟動(dòng)node.js應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

