docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker_data.vhdx占用系统盘过大

docker_data.vhdx占用系统盘过大的问题解决办法

作者:南马

docker_data.vhdx文件是docker用于存储容器,镜像和卷数据的虚拟硬盘文件,直接复制或迁移可能导致数据不一致或损坏,这篇文章主要介绍了docker_data.vhdx占用系统盘过大的问题解决办法,需要的朋友可以参考下

发现问题

服务器的Docker Desktop 的image dick文件docker_data.vhdx 默认是在C盘下C:\Users\Administrator\AppData\Local\Docker\wsl\disk

今天发现500G的C盘几乎被占满了,一个docker_data.vhdx文件就占了270G!!

看了网上一些解决方案,有些复杂,什么需要wsl --shutdown啥,其实在的最新的decktop中操作很简单。目前版本是:Docker Desktop 4.49.0 (208700) is currently the newest version available.

设置setting中找到resources选项,就可以看到disk image location选项,可以将该选项直接browse到D盘(或其他非系统盘),在D盘会自动创建DockerDesktopWSL目录,然后按下出现的Apply & restart按钮

这时候会提示要不要Move disk image,点击Yes,move it。稍等片刻,巨吃C盘空间的docker_data.vhdx就会移动到D:\DockerDesktopWSL下,同时释放C盘空间

解决方式就这么简单:)

使用 Windows 的 diskpart 工具对 Docker 的 .vhdx 文件执行压缩操作,是官方支持的、相对安全的维护手段,但任何涉及系统底层文件的操作都应谨慎。

以下是具体的操作步骤和风险提示。

具体操作步骤

此操作的核心是先完全关闭 WSL2 和 Docker,释放对虚拟磁盘文件的占用,然后使用 diskpart 工具对其进行压缩。

关闭 Docker Desktop

在系统托盘中右键点击 Docker 图标,选择 Quit Docker Desktop

关闭 WSL2 实例

管理员身份打开 PowerShell 或命令提示符 (CMD)。

输入以下命令并回车,这会终止所有正在运行的 WSL2 实例:

wsl --shutdown 

执行 diskpart 压缩

在同一个管理员命令行窗口中,输入 diskpart 并回车,启动 Diskpart 工具。

依次输入并执行以下命令(建议逐行复制粘贴执行):

注意:默认路径为 %LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx。如果之前迁移过位置,请将路径替换为你的实际路径。

select vdisk file="%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

命令解释

完成

操作成功后,重新启动 Docker Desktop。此时查看 .vhdx 文件的大小,应该已经显著减小。

操作风险提示

总体来说,这个操作是低风险的,但需注意以下几点:

总结建议:

只要严格按照步骤操作,特别是确保以管理员身份运行并先关闭 WSL2,这个操作是安全的。它是清理 Docker 占用磁盘空间的有效方法。

到此这篇关于docker_data.vhdx占用系统盘过大的问题解决办法的文章就介绍到这了,更多相关docker_data.vhdx占用系统盘过大内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文