Docker Desktop安装与迁移D盘完整教程
前言
很多小伙伴安装 Docker Desktop 时,默认会装到 C 盘,而且 WSL2 的镜像、容器数据也默认存在 C 盘,很快就会把 C 盘占满。本文详细介绍全新安装时指定 D 盘 + WSL2 数据完整迁移的完整流程,包含所有常见报错的解决方案。
一、全新安装 Docker Desktop 到 D 盘(官方支持方法)
Docker Desktop 安装程序默认没有图形化路径选择,但可以通过命令行参数指定安装目录。
1.1 准备工作
从Docker 官网下载最新版安装包
或者网盘链接:通过网盘分享的文件:Docker Desktop Installer.exe 链接: https://pan.baidu.com/s/1E8sOyEFzELzti4YYQDvnHQ?pwd=vdck 提取码: vdck –来自百度网盘超级会员v6的分享
记住安装包下载路径(通常在Downloads文件夹)
提前在 D 盘创建安装目录:D:\\Docker
1.2 命令行安装(核心步骤)
以管理员身份打开 PowerShell
切换到安装包所在目录:
cd "C:\\Users\\你的用户名\\Downloads"
& ".\\Docker Desktop Installer.exe" install —accept-license —installation-dir="D:\\Docker"
⚠️ 注意:
-
如果安装包文件名带加号(如Docker+Desktop+Installer.exe),请对应修改文件名
-
&是 PowerShell 调用运算符,专门处理带空格的文件名
-
路径必须用英文双引号包裹
1.3 安装完成
等待提示Installation succeeded即安装成功,此时 Docker 主程序已经安装在D:\\Docker目录。
二、WSL2 数据目录迁移(必做!释放 C 盘空间)
⚠️ 重点提醒:即使程序安装在 D 盘,Docker 的镜像、容器、数据卷默认仍存在 C 盘!必须单独迁移 WSL2 数据目录,这才是占用 C 盘空间的大头。
2.1 迁移前置条件
Docker Desktop 已经安装完成
打开一次 Docker Desktop,等待初始化完成(生成 WSL 实例)
完全关闭 Docker Desktop(右键右下角图标→退出)
2.2 完整迁移步骤
管理员 PowerShell 逐条执行:
步骤 1:关闭所有 WSL 实例
wsl —shutdown
步骤 2:查看已存在的 WSL 发行版
wsl —list —verbose
正常应该看到两个发行版:
-
docker-desktop
-
docker-desktop-data
步骤 3:导出原有 WSL 数据到 D 盘
wsl —export docker-desktop-data "D:\\Docker\\wsl_backup.tar"
步骤 4:注销 C 盘原有数据
wsl —unregister docker-desktop-data
步骤 5:导入数据到 D 盘新目录
提前在 D 盘创建文件夹:D:\\Docker\\wsl-data
wsl —import docker-desktop-data "D:\\Docker\\wsl-data" "D:\\Docker\\wsl_backup.tar" —version 2
步骤 6:(可选)删除备份文件释放空间
确认 Docker 正常运行后,删除备份文件:
Remove-Item "D:\\Docker\\wsl_backup.tar"
三、微软商店 Ubuntu 迁移到 D 盘(通用 WSL 迁移方法)
从微软商店安装的 Ubuntu 默认也安装在 C 盘,同样可以通过 WSL 的导出导入机制迁移到 D 盘,方法与 Docker 迁移完全一致。
3.1 迁移前置条件
已从微软商店安装 Ubuntu 并完成初始化
关闭所有 Ubuntu 终端窗口
提前在 D 盘创建目录:D:\\WSL\\Ubuntu
3.2 完整迁移步骤
管理员 PowerShell 逐条执行:
步骤 1:关闭所有 WSL 实例
wsl —shutdown
步骤 2:查看 Ubuntu 发行版名称
wsl —list —verbose
常见名称:Ubuntu、Ubuntu-22.04、Ubuntu-24.04,记住你的发行版名称
步骤 3:导出 Ubuntu 系统到 D 盘
# 替换成你的发行版名称
wsl —export Ubuntu "D:\\WSL\\ubuntu_backup.tar"
步骤 4:注销 C 盘原有 Ubuntu
# 替换成你的发行版名称
wsl —unregister Ubuntu
步骤 5:导入 Ubuntu 到 D 盘新目录
# 替换成你的发行版名称
wsl —import Ubuntu "D:\\WSL\\Ubuntu" "D:\\WSL\\ubuntu_backup.tar" —version 2
步骤 6:设置默认登录用户(重要!)
微软商店安装的 Ubuntu 迁移后默认会变成 root 登录,需要重新设置默认用户:
# 进入Ubuntu
wsl –d Ubuntu
# 在Ubuntu终端内执行(替换成你的用户名)
echo –e "[user]\\ndefault=你的用户名" > /etc/wsl.conf
# 退出Ubuntu
exit
# 重启WSL生效
wsl —shutdown
步骤 7:(可选)删除备份文件
Remove-Item "D:\\WSL\\ubuntu_backup.tar"
3.3 迁移验证
打开 Ubuntu 终端,确认文件、配置、软件都完整保留
查看 D 盘D:\\WSL\\Ubuntu目录下已生成 ext4.vhdx 数据文件
微软商店的 Ubuntu 图标仍可正常点击启动
四、常见报错与解决方案(全踩坑总结)
报错 1:系统找不到指定的文件
原因:安装包文件名带空格 / 加号,PowerShell 识别错误 解决:使用&运算符 + 完整引号包裹文件名:
& ".\\Docker+Desktop+Installer.exe" install —accept-license —installation-dir="D:\\Docker"
报错 2:WSL_E_DISTRO_NOT_FOUND 找不到分发版
原因:Docker 刚安装,还没启动过,WSL 实例未生成 解决:
打开 Docker Desktop,等待完全启动初始化
关闭 Docker Desktop 后再执行迁移命令
报错 3:不存在或未被停止
原因:Docker 后台进程仍在运行,锁定 WSL 文件 解决:彻底终止所有 Docker 进程:
taskkill /F /IM "Docker Desktop.exe"
taskkill /F /IM "com.docker.backend.exe"
wsl —shutdown
Start-Sleep –Seconds 5
再重新执行迁移命令
报错 4:Wsl/Service/0x80070032 参考的对象类型不支持尝试的操作
原因:WSL 网络组件异常 解决(90% 概率解决):
# 管理员PowerShell执行
netsh winsock reset
# 重启电脑
shutdown /r /t 0
报错 5:服务名无效 LxssManager
原因:Win11 新版本已弃用 LxssManager 服务 解决:忽略此错误,直接执行上面的netsh winsock reset方案即可
五、验证迁移成功
打开 Docker Desktop,等待正常启动
拉取一个测试镜像验证:
docker pull hello-world
docker run hello-world
六、后续优化建议
设置中文界面:Docker 设置→General→User interface language→选择简体中文→重启
限制 WSL 内存占用:在用户目录C:\\Users\\用户名下创建.wslconfig文件:
[wsl2]
memory=4GB
processors=4
swap=2GB
docker system prune –a
总结
✅ Docker 主程序:通过–installation-dir参数安装到 D 盘
✅ Docker WSL2 数据:通过导出 – 注销 – 导入迁移到 D 盘
✅ 微软商店 Ubuntu:同样通过 WSL 通用迁移方法迁移到 D 盘
✅ 常见报错:优先尝试netsh winsock reset + 重启电脑
按照本教程操作,Docker Desktop 和 Ubuntu 都将完全运行在 D 盘,不再占用 C 盘宝贵空间,所有镜像、容器、系统数据都完整保留。
(注:文档部分内容可能由 AI 生成)





