Docker Overlay2磁盤空間占用過大清理的方法實現(xiàn)
在日常線上環(huán)境中,我們通常會來做利用Docker來做容器化管理,通過運行容器來執(zhí)行任務(wù)等。
但是,隨著業(yè)務(wù)量的不斷增大,容器的不斷啟動,往往會出現(xiàn)磁盤空間不足,
1、第一種情況
是因為docker中部署的系統(tǒng)中日志內(nèi)容的不斷擴大。
這種情況下,我們可手動,或定時任務(wù)清理。
對于/var/lib/docker/overlay2 空間占用,存在很多誤導(dǎo)的方法是去遷移路徑等。。
其實磁盤空間的占用和overlay沒關(guān)系,它的使用和真實的disk使用相同,overlay只是一個docker的虛擬文件系統(tǒng),真實的文件系統(tǒng)是前者/dev/vda1,可以看到路徑所指為根目錄。
所以,通過該目錄去查找哪里占用資源過大。
通常情況下與overlay2的同級目錄下會有如下的目錄:
占用大量空間的日志文件位于containers下,該目錄下存在如下目錄:
在該目錄下,會存在以目錄名為前綴,以“-json.log”為后綴的目錄文件。
例如:
使用如下命令會看到該文件的大?。?code>ll -h
然后,使用> *-json.log ,將該文件進行清理
清理完成可不重啟服務(wù),重啟更好
清理完后,可通過df -h 查看磁盤占用情況
2、第二種情況
可通過執(zhí)行docker system prune 命令可用于清理磁盤,刪除關(guān)閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無tag的鏡像)
Docker中查詢磁盤占用情況:
docker system df
可看到Images占用了8.534G,Conainers占用244G。
docker system prune -a【慎用】命令清理更干凈、徹底,可以將沒有容器使用的Docker鏡像都刪掉。
這樣也可清理空間
3、最后,可通過安裝portainer 【Docker的圖形化管理工具】
Portainer是Docker的圖形化管理工具,提供狀態(tài)顯示面板、應(yīng)用模板快速部署、容器鏡像網(wǎng)絡(luò)數(shù)據(jù)卷的基本操作(包括上傳下載鏡像,創(chuàng)建容器等操作)、事件日志顯示、容器控制臺操作、Swarm集群和服務(wù)等集中管理和操作、登錄用戶管理和控制等功能。
1、可通過下列命令查詢當(dāng)前有哪些Portainer鏡像
docker search portainer
2、下載鏡像
docker pull docker.io/portainer/portainer
3、鏡像下載成功后,接下來啟動容器
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í)行完該語句后,用宿主機9000端口關(guān)聯(lián)容器中的9000端口,并給容器起名為portainer-test。執(zhí)行完該命令之后,使用該機器IP:PORT即可訪問Portainer。
訪問方式:http://IP:9000
4、首次登錄時,需要注冊用戶,給admin設(shè)置密碼:
如果是本機的話,可以選擇local,選擇完,點擊Connect即可連接到本地docker;
然后查看首頁中是不是掛載了很多Volumes:
如果存在很多Volumes,將【unuse】的全部給刪除掉【remove】掉,便可清掉很大空間。
清完之后,再回去看看磁盤占用。
df -hl
我這里就不做演示,因為沒必要清理。
4、最后,占用大量overlay文件內(nèi)存大小,可以選擇進入你docker中的overlay目錄,通過du -sh *查看下面哪個目錄占用的內(nèi)存比較大,一般是里面的merged目錄和diff目錄下的bin中生成了太多的執(zhí)行文件,把那些刪掉就行了,只需要留下bash即可。
然后重啟docker服務(wù)
systemctl restart docker
到此這篇關(guān)于Docker Overlay2磁盤空間占用過大清理的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Docker Overlay2磁盤清理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker構(gòu)建簡單的個人主頁網(wǎng)站實戰(zhàn)教程
Docker是一種開源容器化技術(shù),可以打包、發(fā)布和運行應(yīng)用程序,本教程介紹了如何使用Docker構(gòu)建一個簡單的個人主頁網(wǎng)站,通過編寫Dockerfile來自定義鏡像,并展示了如何通過傳入環(huán)境變量來動態(tài)更改網(wǎng)頁內(nèi)容,項目使用的技術(shù)包括Docker、Alpine、Nginx、HTML、CSS和JavaScript2024-10-10利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服
Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下,在build.gradle中編寫腳本即可上傳,接下來通過本文給大家介紹下利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服的問題,感興趣的朋友一起看看吧2022-01-01Docker容器網(wǎng)絡(luò)更改的實現(xiàn)
本文主要介紹了Docker容器網(wǎng)絡(luò)更改的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03docker network_mode: "host" 網(wǎng)絡(luò)配置方式
這篇文章主要介紹了docker network_mode: "host" 網(wǎng)絡(luò)配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05Docker報錯Operation?not?permitted問題的解決方法
剛開始接觸Docker的朋友經(jīng)常會遇到問題,下面這篇文章主要給大家介紹了關(guān)于Docker報錯Operation?not?permitted問題的解決方法,需要的朋友可以參考下2023-02-02基于docker 搭建Prometheus+Grafana的過程詳解
這篇文章主要介紹了基于docker 搭建Prometheus+Grafana的過程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03