解決docker rm刪除的docker刪除鏡像後,磁盤空間不釋放問題
一、問題根源:WSL2是個”貔貅精”!
(暴躁科普)你以爲刪了Docker鏡像就能騰空間?太天真!
- WSL2本質是虛擬機:你在Windows裏玩Docker?其實它在後臺偷偷開了個Linux虛擬機!
- 虛擬硬盤文件(ext4.vhdx)是個流氓:這貨會自己膨脹(比如從10G喫到50G),但刪文件後它死都不縮水!
-
真相暴擊:
docker rmi刪鏡像?Windows攤手:”關我屁事,我只管擴容不管縮容!”
(扎心總結)“這就好比你在房間裏扔垃圾,垃圾袋會自動變大,但把垃圾扔了袋子還是鼓的!”
二、暴力解決方案:手撕虛擬硬盤!
▎STEP 0:找到罪魁禍首文件
路徑:C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx(血淚警告)
-
別動
docker-desktop或Ubuntu的vhdx文件! - 建議直接複製路徑,手敲必錯!
▎STEP 1:殺死WSL2和Docker進程
# 管理员模式打开PowerShell! wsl --shutdown # 给WSL2断子绝孙掌 wsl --list -v # 检查所有WSL状态必须都是"Stopped"
(說人話)
- 任務欄右鍵退出Docker Desktop不算數!必須用命令確認進程死透!
-
如果看到某個發行版還是”Running”,用
wsl -t <发行版名>補刀!
▎STEP 2:召喚Windows祖傳壓縮術
# 进入DiskPart(手别抖!) diskpart # 选中你的虚拟硬盘文件(路径粘贴进来!) select vdisk file="C:\Users\你的用户名\AppData\Local\Docker\wsl\data\ext4.vhdx" attach vdisk readonly # 先礼后兵只读模式 compact vdisk # 开始压榨空间! detach vdisk # 完事提裤子走人
(關鍵細節)
- 如果報錯”文件被佔用”,滾回去檢查STEP 1!
-
compact過程可能卡住?正常!文件越大越慢,喝杯咖啡等着!
▎STEP 3:驗收成果
- 去C盤屬性看剩餘空間 → 突然多出幾十G → 嘴角瘋狂上揚😏
- 重新打開Docker Desktop → 鏡像和容器都在!穩如老狗!
三、日常防爆指南
1. 定期清理Docker垃圾
# 核弹级清理(慎用!) docker system prune -af # 删光所有镜像、容器、网络
(求生提示)
- 這命令連親媽都不認!用之前確認無用鏡像已備份!
2. 轉移Docker數據到其他盤
- 打開Docker Desktop → Settings → Resources → Advanced
- 修改”Disk image location”到D盤/E盤 → Apply & Restart(原理暴擊)“讓WSL2去別的盤作妖,C盤從此笑看風雲!”
3. 終極奧義:重置WSL2
wsl --unregister docker-desktop-data # 删库跑路大法
“效果堪比格式化!C盤秒瘦身,但所有Docker數據灰飛煙滅!”
四、槓精自救指南
Q:壓縮完空間沒變化?A:三大可能:
-
路徑搞錯了(檢查是不是
data\ext4.vhdx) -
WSL2沒關乾淨(用
wsl --list -v二次確認) - 沒開管理員權限(DiskPart這爺只認皇帝身份!)
Q:compact vdisk報錯?A:按順序檢查這三條命令!
-
select vdisk file="正确路径" -
attach vdisk readonly -
compact vdisk順序錯一個直接GG!
Q:改存儲路徑後Docker啓動失敗?A:給新路徑開完全控制權限!
- 右鍵文件夾 → 屬性 → 安全 → 編輯 → 添加”Everyone” → 勾選”完全控制”
(結尾暴擊)
“轉發這篇!讓你司程序員告別C盤焦慮!下次誰再對着紅色C盤罵街,把文章甩他臉上——叫爸爸!”
(玄學加成)“點贊收藏的人,三年內C盤永不爆紅!🛡️”
(作者碎碎念)“爲了測試這教程,我C盤紅了8次……現在看到.vhdx文件就想砸電腦!💢
有問題?進羣反饋唄~~
