Windows的docker刪除容器后WSL2磁盤空間不釋放的問題的解決方法
1、起因及原因
很多同學拉取鏡像使用一段時間后發(fā)現(xiàn) C 盤快滿了,把之前用過的鏡像和容器刪除,發(fā)現(xiàn) WSL 掛載目錄的虛擬磁盤大小沒有變化,非常的奇怪。 其實,不同于 WSL1,WSL2 本質上是虛擬機,所以 Windows 會自動創(chuàng)建 vhdx 后綴的虛擬磁盤文件作為存儲。這個 vhdx 后綴的虛擬磁盤文件特點是可以自動擴容,但是一般不會自動縮容。一旦有很多文件把它“撐大”,即使把這些文件刪除它也不會自動“縮小”。所以刪除文件后還需要我們手動進行壓縮才能釋放磁盤空間。
2、解決
2.1 找到要壓縮的虛擬磁盤文件
如果你沒更改掛載磁盤的位置,那他位置在 C:\Users\<你當前用戶名>\AppData\Local\Docker\wsl\data\ext4.vhdx
,記下路徑,后面要用到。
2.2 關閉 Docker Desktop
在任務欄右下角右鍵單擊 Docker Desktop 圖標關閉 Docker 桌面,選擇退出 Docker 桌面,等一會 Docker 圖標沒了之后,就證明 Docker 完全關閉了,然后,打開命令提示符:我們就能能夠看到,確保兩個狀態(tài)都已停止。
wsl --list -v
如果這一步?jīng)]關閉也沒問題,最后所有操作結束后,重啟 Docker Desktop 即可。
2.3 壓縮虛擬磁盤文件
在 PowerShell 中執(zhí)行:
# 關閉 WSL2 中的 linux distributions wsl --shutdown # 運行管理計算機的驅動器的 DiskPart 命令 diskpart
會新打開一個叫 DiskPart 的命令窗口,如下圖:
在新打開的 DiskPart 命令窗口中執(zhí)行:
# 選擇虛擬磁盤文件 select vdisk file="就是步驟2.1虛擬磁盤文件的路徑" # 壓縮文件 compact vdisk # 壓縮完畢后卸載磁盤 detach vdisk
上述操作執(zhí)行完畢,WSL2 刪除文件后空出來的磁盤空間就被釋放了,可以去虛擬磁盤文件的路徑看到 ext4.vhdx 文件大小已經(jīng)減小。最后打開 Docker Desktop 可以看到原來鏡像還在,成功解決問題。
3. 常見的 Docker 清理命令
在 Docker 中,可以使用以下命令來清理未使用的資源,包括未使用的鏡像、容器和網(wǎng)絡:
docker system prune -a
這將刪除所有停止的容器、未使用的網(wǎng)絡和未使用的鏡像。請注意,這個命令會刪除所有未使用的資源,因此請確保你不再需要這些資源。
以上就是Windows的docker刪除容器后WSL2磁盤空間不釋放的問題的解決方法的詳細內容,更多關于docker WSL2磁盤空間不釋放的資料請關注腳本之家其它相關文章!
相關文章
docker容器增加或者修改容器映射端口的實現(xiàn)方法
在只有使用docker安裝的容器,沒有使用docker-compose或者其他客戶端工具,如果要增加或者修改容器端口,也是可以增加或者修改容器端口映射,本文給大家介紹了docker容器增加或者修改容器映射端口的實現(xiàn)方法,需要的朋友可以參考下2025-01-01Docker網(wǎng)絡配置(橋接網(wǎng)絡和自定義網(wǎng)絡)自定義網(wǎng)絡設置ip方式
這篇文章主要介紹了Docker網(wǎng)絡配置(橋接網(wǎng)絡和自定義網(wǎng)絡)自定義網(wǎng)絡設置ip方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Docker?Kill/Pause/Unpause命令使用與區(qū)別小結
本文詳細介紹了Docker中的三個重要命令,kill、pause和unpause,這些命令在管理和操作運行中的容器時非常有用,具有一定的參考價值,感興趣的可以了解一下2024-03-03docker+mongodb設置數(shù)據(jù)庫的賬號和密碼的實現(xiàn)步驟
本文主要介紹了docker+mongodb設置數(shù)據(jù)庫的賬號和密碼的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08