網站首頁 編程語言 正文
在日常線上環境中,我們通常會來做利用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
相關推薦
- 2022-08-14 C#生成比較短的Token字符串_C#教程
- 2022-12-07 C語言內存分布與heap空間分別詳細講解_C 語言
- 2022-09-18 go?mock?server的簡易實現示例_Golang
- 2022-09-27 Android開發EditText實現密碼顯示隱藏_Android
- 2022-07-03 解決編碼問題:UnicodeDecodeError:?'utf-8'?codec?can't?dec
- 2023-11-20 python獲取當前路徑所有文件
- 2022-02-18 Ubuntu重啟后nvidia-smi命令報錯NVIDIA-SMI has failed becau
- 2022-12-05 TensorFlow中關于tf.app.flags命令行參數解析模塊_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支