Windows系统下如何将Docker Desktop安装到非系统盘并解决空间占用问题
解决Docker Desktop占用C盘空间及迁移到HDD的问题
先清理现有冗余空间(无需卸载)
- 打开Docker Desktop,进入Settings -> Resources -> Disk,点击
Clean up清理临时文件,再点击Prune unused data删除未使用的镜像、容器、卷和网络,这一步能释放不少缓存空间。 - 如果用的是WSL2后端,还可以压缩WSL虚拟磁盘:
- 完全关闭Docker Desktop,然后在PowerShell里运行
wsl --shutdown停止所有WSL实例。 - 执行命令压缩虚拟磁盘:
替换optimize-vhd -Path "C:\Users\<你的用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx" -Mode Full<你的用户名>为实际用户名,这个操作能回收WSL磁盘里的空闲空间。
- 完全关闭Docker Desktop,然后在PowerShell里运行
迁移Docker数据到HDD(WSL2后端通用方法)
现在Docker Desktop默认用WSL2后端,直接改安装路径没用,得迁移WSL发行版:
- 彻底关闭Docker Desktop,确保任务栏里的Docker图标完全退出。
- 打开PowerShell,运行
wsl --list --verbose,找到docker-desktop和docker-desktop-data两个发行版。 - 把这两个发行版导出到HDD的目标目录(比如D:\Docker):
wsl --export docker-desktop D:\Docker\docker-desktop.tar wsl --export docker-desktop-data D:\Docker\docker-desktop-data.tar - 注销原有的Docker WSL发行版:
wsl --unregister docker-desktop wsl --unregister docker-desktop-data - 从HDD导入发行版:
wsl --import docker-desktop D:\Docker\desktop D:\Docker\docker-desktop.tar --version 2 wsl --import docker-desktop-data D:\Docker\data D:\Docker\docker-desktop-data.tar --version 2 - 重新启动Docker Desktop,现在所有镜像、容器数据都会存在HDD的D:\Docker目录下,C盘不会再被占用。
关于修改--data-root无效的说明
如果是用Windows容器后端,不要去修改系统服务参数,直接在Docker Desktop里改:
- 进入Settings -> Docker Engine,在配置JSON里添加一行:
"data-root": "D:\\Docker\\win-data" - 点击
Apply & Restart,Docker会自动迁移数据到新目录,无需手动改服务。
之前改服务参数无效是因为Docker Desktop会接管服务配置,手动修改会被覆盖,还可能导致服务启动失败。
内容的提问来源于stack exchange,提问作者dokgu
相关产品推荐
相关产品推荐

