Docker Desktop安装与迁移D盘完整教程 (1)
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
- 查看 D 盘空间占用:
D:\Docker\wsl-data目录下的 ext4.vhdx 文件就是 WSL 数据文件
六、后续优化建议
-
设置中文界面:Docker 设置→General→User interface language→选择简体中文→重启
-
限制 WSL 内存占用:在用户目录
C:\Users\用户名下创建.wslconfig文件:
[wsl2]
memory=4GB
processors=4
swap=2GB
- 定期清理 Docker 无用镜像:
docker system prune -a
总结
-
✅ Docker 主程序:通过
--installation-dir参数安装到 D 盘 -
✅ Docker WSL2 数据:通过导出 - 注销 - 导入迁移到 D 盘
-
✅ 微软商店 Ubuntu:同样通过 WSL 通用迁移方法迁移到 D 盘
-
✅ 常见报错:优先尝试
netsh winsock reset+ 重启电脑
按照本教程操作,Docker Desktop 和 Ubuntu 都将完全运行在 D 盘,不再占用 C 盘宝贵空间,所有镜像、容器、系统数据都完整保留。
(注:文档部分内容可能由 AI 生成)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)