1、起因及原因
很多同學(xué)拉取鏡像使用一段時(shí)間后發(fā)現(xiàn) C 盤快滿了,把之前用過的鏡像和容器刪除,發(fā)現(xiàn) WSL 掛載目錄的虛擬磁盤大小沒有變化,非常的奇怪。
其實(shí),不同于 WSL1,WSL2 本質(zhì)上是虛擬機(jī),所以 Windows 會(huì)自動(dòng)創(chuàng)建 vhdx 后綴的虛擬磁盤文件作為存儲(chǔ)。這個(gè) vhdx 后綴的虛擬磁盤文件特點(diǎn)是可以自動(dòng)擴(kuò)容,但是一般不會(huì)自動(dòng)縮容。一旦有很多文件把它“撐大”,即使把這些文件刪除它也不會(huì)自動(dòng)“縮小”。所以刪除文件后還需要我們手動(dòng)進(jìn)行壓縮才能釋放磁盤空間。
2、解決
2.1 找到要壓縮的虛擬磁盤文件
如果你沒更改掛載磁盤的位置,那他位置在 C:\Users\<你當(dāng)前用戶名>\AppData\Local\Docker\wsl\data\ext4.vhdx
,記下路徑,后面要用到。
2.2 關(guān)閉 Docker Desktop
在任務(wù)欄右下角右鍵單擊 Docker Desktop 圖標(biāo)關(guān)閉 Docker 桌面,選擇退出 Docker 桌面,等一會(huì) Docker 圖標(biāo)沒了之后,就證明 Docker 完全關(guān)閉了,然后,打開命令提示符:
wsl --list -v
我們就能能夠看到,確保兩個(gè)狀態(tài)都已停止。
如果這一步?jīng)]關(guān)閉也沒問題,最后所有操作結(jié)束后,重啟 Docker Desktop 即可。
2.3 壓縮虛擬磁盤文件
在 PowerShell 中執(zhí)行:
# 關(guān)閉 WSL2 中的 linux distributions
wsl --shutdown
# 運(yùn)行管理計(jì)算機(jī)的驅(qū)動(dòng)器的 DiskPart 命令
diskpart
會(huì)新打開一個(gè)叫 DiskPart 的命令窗口,如下圖:
在新打開的 DiskPart 命令窗口中執(zhí)行:
# 選擇虛擬磁盤文件
select vdisk file="就是步驟2.1虛擬磁盤文件的路徑"
# 壓縮文件
compact vdisk
# 壓縮完畢后卸載磁盤
detach vdisk
上述操作執(zhí)行完畢,WSL2 刪除文件后空出來的磁盤空間就被釋放了,可以去虛擬磁盤文件的路徑看到 ext4.vhdx 文件大小已經(jīng)減小。最后打開 Docker Desktop 可以看到原來鏡像還在,成功解決問題。文章來源:http://www.zghlxwxcb.cn/news/detail-596422.html
3、偏招
有些同學(xué)嘗試把 ext4.vhdx 刪除直接從根源解決問題,其實(shí)這也是可以的文章來源地址http://www.zghlxwxcb.cn/news/detail-596422.html
- 開機(jī)后馬上切換到 ext4.vhdx 目錄下,把 ext4.vhdx 刪除,因?yàn)槿绻銌?dòng) docker 后再想去刪除,他會(huì)告訴你 ext4.vhdx 操作無法完成,因?yàn)槲募言赟ystem中打開。
- 上個(gè)步驟之后,我們會(huì)發(fā)現(xiàn)打開 Docker Desktop 一直在 starting ,打不開,卸載 Docker Desktop ,再重新安裝 Docker Desktop 打開即可解決。
到了這里,關(guān)于【已解決】Windows 的 docker 刪除容器后 WSL2 磁盤空間不釋放的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!