由于个人情况存在差异,请在参考本文进行数据迁移前后多方比对确认,确保无误后再谨慎操作!
【2025-08-03补充】运行过程中发现实际上 docker 的迁移工作可能更为复杂!强烈不推荐本文的 docker 迁移方法(本文已翻车)!!!!没有删除此处只因为留给读者作为警示!!!!!Ubuntu暂时没有排查出问题,但也谨慎参考!!!!
一、情景描述
C 盘空间不够了,用 TreeSize 检测的时候发现之前下载的 docker 和 wsl 占了很大空间,但不敢随便删掉,所以打算从 C 盘迁移到 D 盘。
先用wsl -l -v
指令查看一下当前已安装的 wsl。
发现有 Ubuntu-18.04、docker-desktop-data 和 docker-desktop。由于 docker-desktop 体积远不如其他的大,因此我们对 Ubuntu-18.04、docker-desktop-data 进行迁移,从 C 盘迁移到 D 盘。
二、操作过程
【2025-08-03补充】运行过程中发现实际上 docker 的迁移工作可能更为复杂!强烈不推荐本文的 docker 迁移方法(本文已翻车)!!!!没有删除此处只因为留给读者作为警示!!!!!Ubuntu暂时没有排查出问题,但也谨慎参考!!!!
对于 docker-desktop-data 和 Ubuntu 而言,迁移数据的流程是一致的:先导出tar包,然后注销实例,最后再导入。
(一)迁移 docker-desktop-data【2025-08-03补充】此部分已翻车,仅作警示作用
1. 导出 tar 包
执行命令如下,导出数据为 tar 包(具体的 wsl 名称与目录位置根据自己情况进行修改)。
bash
wsl --export docker-desktop-data D:\WSL\Docker\docker-desktop-data.tar
2. 注销实例
执行命令如下,注销 docker-desktop-data。注销后可使用wsl -l -v
命令验证,发现确实不再有 docker-desktop-data。
bash
wsl --unregister docker-desktop-data

3. 导入数据
执行命令如下,导入数据。导入后可使用wsl -l -v
命令验证。
bash
wsl --import docker-desktop-data D:\WSL\Docker\docker-data D:\WSL\Docker\docker-desktop-data.tar --version 2

【2025-08-03补充】存在的问题
然而之后在执行docker images等基本命令后发现,几乎无法在powershell执行这些命令,在UI界面也同样无法操作任何 images 或 volumes。检查后发现Docker Desktop的【设置】->【Resources】下 Disk mage location 的位置仍然在 C 盘,当我尝试变更为 D 盘对应位置时程序会卡死。我不清楚究竟是什么原因造成的,网上也有资料说需要开放 D 盘对应目录的所有权限,但我尝试无果。因此对于上述内容请读者仔细甄别,避免出现数据丢失的情况!!!
(二)迁移Ubuntu
迁出Ubuntu也是类似的过程。
1. 导出 tar 包
执行命令如下,导出数据为 tar 包。
bash
wsl --export Ubuntu-18.04 D:\WSL\Ubuntu-18.04\Ubuntu-18.04.tar

2. 注销实例
执行命令如下,注销 Ubuntu。
bash
wsl --unregister Ubuntu-18.04

3. 导入数据
导入数据。
bash
wsl --import Ubuntu-18.04 D:\WSL\Ubuntu-18.04 D:\WSL\Ubuntu-18.04\Ubuntu-18.04.tar --version 2
