相信很多使用Docker的小伙伴都会遇到这样的问题:在查看磁盘管理或使用diskpart命令时,会发现系统中多出几个名为VDisk的虚拟磁盘(后缀通常为.vhdx),占用了不少磁盘空间,想删除却不知道从何下手,甚至误操作导致Docker无法正常运行。
今天就结合实际操作场景,手把手教大家如何安全、彻底地删除Docker生成的VDisk虚拟磁盘,全程无复杂命令,新手也能轻松上手,同时避开那些容易踩坑的操作,避免误删导致数据丢失或软件异常。
一、先搞懂:Docker的VDisk虚拟磁盘是什么?
首先我们要明确,Docker在Windows系统中(尤其是WSL环境下)运行时,会自动创建虚拟磁盘文件(.vhdx格式),用于存储Docker的镜像、容器数据等内容。这些虚拟磁盘会被系统识别为VDisk(虚拟磁盘),也就是我们在diskpart中看到的“VDisk 0、VDisk 1”这类设备。
重点提醒:这类VDisk不是“丢失的动态磁盘” ,很多人会误将其当作普通动态磁盘,使用“delete disk”命令删除,不仅删不掉,还可能导致系统报错,甚至损坏Docker数据。这也是我之前遇到的坑,大家一定要避开!
二、删除前的3个准备工作(必做!)
在删除VDisk之前,一定要做好以下准备,避免出现意外情况,确保操作安全:
- 停止Docker相关服务:打开“服务”(Win+R输入services.msc),找到“Docker Desktop Service”,右键选择“停止”;如果有WSL相关服务(如LxssManager),也一并停止,避免虚拟磁盘被占用,无法卸载。
- 备份重要数据(可选不推荐,😁) :如果Docker中存储了重要的容器、镜像,建议先通过Docker Desktop导出备份,或记录好关键镜像名称,避免删除虚拟磁盘后数据丢失(如果确认无需保留Docker数据,可跳过此步)。
- 确认VDisk对应的文件路径:通过diskpart命令查看VDisk对应的.vhdx文件路径(就像你之前执行“list vdisk”看到的那样),记录好路径,后续删除文件时会用到,避免删错文件。
三、详细操作步骤(全程复制命令即可)
删除Docker VDisk的核心逻辑是:先卸载虚拟磁盘 → 再删除对应的.vhdx文件,全程使用diskpart命令操作,步骤清晰,无需复杂设置。
步骤1:打开diskpart命令行(管理员权限)
-
按下Win+X,选择“Windows终端(管理员)”(或“命令提示符(管理员)”);
-
在终端中输入命令
diskpart,按下回车,进入diskpart交互模式(此时命令提示符会变成“DISKPART>”)。
步骤2:查看所有VDisk,确认要删除的目标
在DISKPART> 后输入命令 list vdisk,按下回车,会显示所有虚拟磁盘的信息,包括:VDisk编号、对应Disk编号、状态、类型和文件路径。
比如你之前看到的:
VDisk ### Disk ### State Type File
--------- -------- -------------------- --------- ----
VDisk 0 Disk 3 Attached not open Expandable C:\Users\boer\AppData\Local\Docker\wsl\disk\docker_data.vhdx
VDisk 1 Disk 2 Attached not open Expandable E:\dev.vhdx
这里的两个VDisk,就是Docker生成的虚拟磁盘,我们只需要删除docker_data.vhdx,另外一个是我自己建的微软开发者磁盘,据说打开文件可以加速。
步骤3:卸载VDisk(关键步骤,不可跳过)
卸载的目的是解除系统对虚拟磁盘文件的占用,只有卸载成功,才能删除对应的.vhdx文件。我们逐个操作:
卸载VDisk 0(Docker数据盘,路径:C:\Users\boer\AppData\Local\Docker\wsl\disk\docker_data.vhdx)
在DISKPART> 后依次输入以下两条命令,每条命令输入后按下回车:
select vdisk file="C:\Users\boer\AppData\Local\Docker\wsl\disk\docker_data.vhdx"
detach vdisk
如果提示“成功 detach 虚拟磁盘”,说明卸载成功;如果提示“虚拟磁盘正在使用”,请回到准备工作第一步,确认Docker和WSL服务已停止,再重新尝试。
同样等待提示“成功 detach 虚拟磁盘”,至此,虚拟磁盘已全部卸载。
步骤4:删除.vhdx文件(彻底清理空间)
虚拟磁盘卸载后,对应的.vhdx文件就可以正常删除了,有两种方式,任选一种即可:
方式1:通过文件资源管理器删除(简单直观,最好用这一步不然你删错了就完蛋了)
- 打开“此电脑”,按照之前记录的文件路径,找到对应的.vhdx文件;
- 右键点击文件,选择“删除”,并确认删除(如果提示“文件正在使用”,说明卸载不彻底,重新执行步骤3);
- 删除后,记得清空回收站,彻底释放磁盘空间。
方式2:通过命令行删除(快速高效)
回到管理员终端(无需再进入diskpart),输入以下命令,删除两个文件(注意路径要和你实际的一致):
del "C:\Users\boer\AppData\Local\Docker\wsl\disk\docker_data.vhdx"
del "E:\dev.vhdx"
输入命令后按下回车,等待执行完成,文件即可删除。
步骤5:验证删除结果(可选)
如果想确认虚拟磁盘是否彻底删除,可以再次进入diskpart,输入 list vdisk,如果没有显示之前的VDisk 0和VDisk 1,说明删除成功;同时检查对应的文件路径,确认.vhdx文件已消失。
四、避坑指南(重中之重,必看!)
很多人删除VDisk失败,都是因为踩了以下几个坑,大家一定要注意:
- 坑1:直接用“delete disk”删除VDisk → 错误!“delete disk”命令仅用于删除“丢失的动态磁盘”,而VDisk是虚拟磁盘,用这个命令会报错,甚至损坏系统文件。
- 坑2:未停止Docker服务就卸载VDisk → 错误!Docker运行时会占用虚拟磁盘,导致无法卸载,提示“文件正在使用”,必须先停止Docker相关服务。
- 坑3:删错.vhdx文件 → 危险!一定要确认文件路径是Docker生成的(通常在Docker\wsl\disk目录下),不要误删系统或其他软件的虚拟磁盘文件。
- 坑4:卸载后未删除.vhdx文件 → 无效!仅卸载VDisk,对应的文件还在,不会释放磁盘空间,必须卸载后再删除文件。
五、补充说明(按需查看)
- 如果删除后重启Docker,会重新生成新的VDisk虚拟磁盘(这是正常现象),因为Docker需要虚拟磁盘存储数据;如果想彻底避免生成,可通过Docker Desktop设置调整存储路径或关闭WSL集成。
- 如果操作过程中遇到报错,可尝试重启电脑,再重新执行所有步骤,大概率能解决问题。
- 此方法适用于Windows系统中Docker生成的VDisk虚拟磁盘,其他软件生成的VDisk(如虚拟机),操作逻辑类似,但需确认文件归属,避免误操作。
总结
删除Docker的VDisk虚拟磁盘,核心就是“先卸载、再删除”,全程只需4个关键步骤,避开几个常见坑,就能安全、彻底地释放磁盘空间。整个过程没有复杂的技术操作,新手也能轻松完成,再也不用为多余的虚拟磁盘占用空间而烦恼啦!
如果操作过程中遇到问题,欢迎在评论区留言,我会及时回复帮忙解决~
虽然是AI写的但是我改过