日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Docker?Overlay2磁盤空間占用過大清理的方法實現_docker

作者:聽說唐僧不吃肉 ? 更新時間: 2022-05-09 編程語言

在日常線上環境中,我們通常會來做利用Docker來做容器化管理,通過運行容器來執行任務等。

但是,隨著業務量的不斷增大,容器的不斷啟動,往往會出現磁盤空間不足,

1、第一種情況

是因為docker中部署的系統中日志內容的不斷擴大。

這種情況下,我們可手動,或定時任務清理。

對于/var/lib/docker/overlay2 空間占用,存在很多誤導的方法是去遷移路徑等。。
其實磁盤空間的占用和overlay沒關系,它的使用和真實的disk使用相同,overlay只是一個docker的虛擬文件系統,真實的文件系統是前者/dev/vda1,可以看到路徑所指為根目錄。
所以,通過該目錄去查找哪里占用資源過大。

通常情況下與overlay2的同級目錄下會有如下的目錄:

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

使用如下命令會看到該文件的大小:ll -h

然后,使用> *-json.log ,將該文件進行清理

清理完成可不重啟服務,重啟更好
清理完后,可通過df -h 查看磁盤占用情況

2、第二種情況

可通過執行docker system prune 命令可用于清理磁盤,刪除關閉的容器、無用的數據卷和網絡,以及dangling鏡像(即無tag的鏡像)

Docker中查詢磁盤占用情況:

docker system df

在這里插入圖片描述

可看到Images占用了8.534G,Conainers占用244G。

docker system prune -a【慎用】命令清理更干凈、徹底,可以將沒有容器使用的Docker鏡像都刪掉。

這樣也可清理空間

3、最后,可通過安裝portainer 【Docker的圖形化管理工具】

Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日志顯示、容器控制臺操作、Swarm集群和服務等集中管理和操作、登錄用戶管理和控制等功能。

1、可通過下列命令查詢當前有哪些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

執行完該語句后,用宿主機9000端口關聯容器中的9000端口,并給容器起名為portainer-test。執行完該命令之后,使用該機器IP:PORT即可訪問Portainer。

訪問方式:http://IP:9000

4、首次登錄時,需要注冊用戶,給admin設置密碼:

在這里插入圖片描述

如果是本機的話,可以選擇local,選擇完,點擊Connect即可連接到本地docker;

在這里插入圖片描述

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

在這里插入圖片描述

如果存在很多Volumes,將【unuse】的全部給刪除掉【remove】掉,便可清掉很大空間。

清完之后,再回去看看磁盤占用。

df -hl

我這里就不做演示,因為沒必要清理。

4、最后,占用大量overlay文件內存大小,可以選擇進入你docker中的overlay目錄,通過du -sh *查看下面哪個目錄占用的內存比較大,一般是里面的merged目錄和diff目錄下的bin中生成了太多的執行文件,把那些刪掉就行了,只需要留下bash即可。

然后重啟docker服務

systemctl restart docker

原文鏈接:https://blog.csdn.net/xu710263124/article/details/115622534

欄目分類
最近更新