← 返回列表

解決docker rm刪除的docker刪除鏡像後,磁盤空間不釋放問題

itadol5j

一、問題根源: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"  
640-13

(說人話)

  • 任務欄右鍵退出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過程可能卡住?正常!文件越大越慢,喝杯咖啡等着!

640-14

▎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:三大可能:

  1. 路徑搞錯了(檢查是不是data\ext4.vhdx)
  2. WSL2沒關乾淨(用wsl --list -v二次確認)
  3. 沒開管理員權限(DiskPart這爺只認皇帝身份!)
640-15

Q:compact vdisk報錯?A:按順序檢查這三條命令!

  1. select vdisk file="正确路径"
  2. attach vdisk readonly
  3. compact vdisk順序錯一個直接GG!

Q:改存儲路徑後Docker啓動失敗?A:給新路徑開完全控制權限!

  • 右鍵文件夾 → 屬性 → 安全 → 編輯 → 添加”Everyone” → 勾選”完全控制”

(結尾暴擊)

“轉發這篇!讓你司程序員告別C盤焦慮!下次誰再對着紅色C盤罵街,把文章甩他臉上——叫爸爸!”

(玄學加成)“點贊收藏的人,三年內C盤永不爆紅!🛡️”


(作者碎碎念)“爲了測試這教程,我C盤紅了8次……現在看到.vhdx文件就想砸電腦!💢

有問題?進羣反饋唄~~

640-10