docker_data.vhdx占用系統(tǒng)盤過(guò)大的問(wèn)題解決辦法
發(fā)現(xiàn)問(wèn)題
服務(wù)器的Docker Desktop 的image dick文件docker_data.vhdx 默認(rèn)是在C盤下C:\Users\Administrator\AppData\Local\Docker\wsl\disk
今天發(fā)現(xiàn)500G的C盤幾乎被占滿了,一個(gè)docker_data.vhdx文件就占了270G!!
看了網(wǎng)上一些解決方案,有些復(fù)雜,什么需要wsl --shutdown啥,其實(shí)在的最新的decktop中操作很簡(jiǎn)單。目前版本是:Docker Desktop 4.49.0 (208700) is currently the newest version available.
設(shè)置setting中找到resources選項(xiàng),就可以看到disk image location選項(xiàng),可以將該選項(xiàng)直接browse到D盤(或其他非系統(tǒng)盤),在D盤會(huì)自動(dòng)創(chuàng)建DockerDesktopWSL目錄,然后按下出現(xiàn)的Apply & restart按鈕

這時(shí)候會(huì)提示要不要Move disk image,點(diǎn)擊Yes,move it。稍等片刻,巨吃C盤空間的docker_data.vhdx就會(huì)移動(dòng)到D:\DockerDesktopWSL下,同時(shí)釋放C盤空間

解決方式就這么簡(jiǎn)單:)
使用 Windows 的 diskpart 工具對(duì) Docker 的 .vhdx 文件執(zhí)行壓縮操作,是官方支持的、相對(duì)安全的維護(hù)手段,但任何涉及系統(tǒng)底層文件的操作都應(yīng)謹(jǐn)慎。
以下是具體的操作步驟和風(fēng)險(xiǎn)提示。
具體操作步驟
此操作的核心是先完全關(guān)閉 WSL2 和 Docker,釋放對(duì)虛擬磁盤文件的占用,然后使用 diskpart 工具對(duì)其進(jìn)行壓縮。
關(guān)閉 Docker Desktop
在系統(tǒng)托盤中右鍵點(diǎn)擊 Docker 圖標(biāo),選擇 Quit Docker Desktop。
關(guān)閉 WSL2 實(shí)例
以管理員身份打開 PowerShell 或命令提示符 (CMD)。
輸入以下命令并回車,這會(huì)終止所有正在運(yùn)行的 WSL2 實(shí)例:
wsl --shutdown
執(zhí)行 diskpart 壓縮
在同一個(gè)管理員命令行窗口中,輸入 diskpart 并回車,啟動(dòng) Diskpart 工具。
依次輸入并執(zhí)行以下命令(建議逐行復(fù)制粘貼執(zhí)行):
注意:默認(rèn)路徑為
%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx。如果之前遷移過(guò)位置,請(qǐng)將路徑替換為你的實(shí)際路徑。
select vdisk file="%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit
命令解釋:
select vdisk: 選擇要操作的虛擬磁盤文件。attach vdisk readonly: 以只讀模式掛載磁盤,這是壓縮的前提。compact vdisk: 執(zhí)行壓縮,回收未使用的物理空間。detach vdisk: 卸載磁盤。exit: 退出工具。
完成
操作成功后,重新啟動(dòng) Docker Desktop。此時(shí)查看 .vhdx 文件的大小,應(yīng)該已經(jīng)顯著減小。
操作風(fēng)險(xiǎn)提示
總體來(lái)說(shuō),這個(gè)操作是低風(fēng)險(xiǎn)的,但需注意以下幾點(diǎn):
- 必須以管理員身份運(yùn)行:
diskpart操作需要管理員權(quán)限,否則會(huì)報(bào)錯(cuò)“拒絕訪問(wèn)”。 - 文件占用沖突:如果 Docker 或 WSL2 沒(méi)有完全關(guān)閉(例如后臺(tái)進(jìn)程仍在運(yùn)行),
attach vdisk步驟會(huì)失敗,提示“另一個(gè)程序正在使用此文件”。此時(shí)必須確保第一步已執(zhí)行到位,否則強(qiáng)行操作可能導(dǎo)致數(shù)據(jù)損壞。務(wù)必先執(zhí)行wsl --shutdown。 - 數(shù)據(jù)丟失風(fēng)險(xiǎn):此操作本身不會(huì)刪除容器內(nèi)的數(shù)據(jù),因?yàn)樗皇腔厥仗摂M磁盤中“已標(biāo)記為刪除”的空間。但是,任何磁盤維護(hù)操作都存在理論上的風(fēng)險(xiǎn)。
- 高風(fēng)險(xiǎn)操作:如果在
diskpart中錯(cuò)誤地使用了clean或delete命令,將導(dǎo)致 Docker 所有鏡像和容器數(shù)據(jù)永久丟失。請(qǐng)務(wù)必不要輸入這些命令。
- 高風(fēng)險(xiǎn)操作:如果在
- 效果不一:壓縮的效果取決于你之前刪除了多少數(shù)據(jù)。如果虛擬磁盤內(nèi)部沒(méi)有多少空閑空間,壓縮后的大小變化不會(huì)很明顯。
總結(jié)建議:
只要嚴(yán)格按照步驟操作,特別是確保以管理員身份運(yùn)行并先關(guān)閉 WSL2,這個(gè)操作是安全的。它是清理 Docker 占用磁盤空間的有效方法。
到此這篇關(guān)于docker_data.vhdx占用系統(tǒng)盤過(guò)大的問(wèn)題解決辦法的文章就介紹到這了,更多相關(guān)docker_data.vhdx占用系統(tǒng)盤過(guò)大內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker中容器數(shù)據(jù)卷(Data Volume)和數(shù)據(jù)管理詳解
- 解決Docker安裝錯(cuò)誤failure:repodata/repomd.xml from docker-ce-stable
- Docker啟動(dòng)Nacos報(bào)錯(cuò):No DataSource set問(wèn)題及解決
- 深入理解 Docker 數(shù)據(jù)卷(Data Volume)
- 如何使用Docker恢復(fù)Mysql8備份的Data數(shù)據(jù)
- Docker?修改存儲(chǔ)位置的步驟(data-root?遷移完整指南)
- docker部署datax全過(guò)程
- docker啟動(dòng)anything llm報(bào)unable to open database file: ../storage/anythingllm.db問(wèn)題及解決
- Docker 部署Datart BI工具完整指南(PostgreSQL 持久化存儲(chǔ))
相關(guān)文章
Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)
本文主要介紹了Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn),主要包括編寫Dockerfile、構(gòu)建鏡像、測(cè)試鏡像等操作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
如何使用Docker和cpolar在Linux服務(wù)器上搭建DashDot監(jiān)控面板
本文主要介紹如何在Linux服務(wù)器上使用Docker和cpolar技術(shù)搭建DashDot監(jiān)控面板,實(shí)現(xiàn)實(shí)時(shí)服務(wù)器監(jiān)控,DashDot提供直觀的監(jiān)控界面和豐富的指標(biāo),通過(guò)cpolar可以實(shí)現(xiàn)公網(wǎng)訪問(wèn),方便用戶隨時(shí)了解服務(wù)器狀態(tài),文章詳細(xì)說(shuō)明了環(huán)境準(zhǔn)備、安裝Docker、配置DashDot和cpolar的步驟2024-09-09
Docker 設(shè)置代理的三種方法(2025年06月03日親測(cè)可用)
在Docker中設(shè)置代理是非常常見的需求,本文將介紹三種配置Docker使用代理的常見方法,包括通過(guò)配置鏡像加速器、通過(guò)配置HTTP/HTTPS代理及通過(guò)配置代理,感興趣的可以了解一下2025-09-09
如何修改Docker部署gitlab的外部訪問(wèn)地址和端口
這篇文章主要介紹了如何修改Docker部署gitlab的外部訪問(wèn)地址和端口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
使用Dockerfile實(shí)現(xiàn)容器內(nèi)部服務(wù)隨容器自啟動(dòng)的方法
這篇文章主要介紹了使用Dockerfile實(shí)現(xiàn)容器內(nèi)部服務(wù)隨容器自啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
docker中Dockerfile方式建立鏡像HelloWorld
這篇文章主要介紹了docker中Dockerfile方式建立鏡像HelloWorld,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

