弄好了WSL并安装了ubuntu(指南链接),然后把Docker的引擎从Hyper-V转到了WSL(指南链接)。
之后突然想到:这些WSL相关的数据文件路径该不会都在宝贵的C盘吧?果然就在。
Docker在这里:
C:\Users\myname\AppData\Local\Docker\wsl\data
Ubuntu在这里:
C:\Users\myname\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
那就得想办法把他们都移走,先在D盘创建目标路径D:\WSL。然后打开PowerShell。
C:\Windows\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2
C:\Windows\system32> wsl --shutdown
C:\Windows\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
docker-desktop-data Stopped 2
docker-desktop Stopped 2
看到三个虚拟机,然后把它们都关掉。
C:\Windows\system32> wsl --export Ubuntu D:\WSL\ubuntu.tar
C:\Windows\system32> wsl --export docker-desktop-data D:\WSL\docker-desktop-data.tar
C:\Windows\system32> wsl --export docker-desktop D:\WSL\docker-desktop.tar
把这三个虚拟机逐一导出成转储文件。
C:\Windows\system32> wsl --unregister Ubuntu
正在注销...
C:\Windows\system32> wsl --unregister docker-desktop-data
正在注销...
C:\Windows\system32> wsl --unregister docker-desktop
正在注销...
注销虚拟机,注销后那些数据文件就被删除了,C盘的宝贵空间也回来了。
C:\Windows\system32> wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu.tar --version 2
C:\Windows\system32> wsl --import docker-desktop D:\WSL\docker-desktop D:\WSL\docker-desktop.tar --version 2
C:\Windows\system32> wsl --import docker-desktop-data D:\WSL\docker-desktop-data D:\WSL\docker-desktop-data.tar --version 2
将转储文件导入到WSL中。参数依次是:虚拟机名称,目标路径,虚拟机文件路径。后面的version是因为用了WSL2。
C:\Windows\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
docker-desktop-data Stopped 2
docker-desktop Stopped 2
再次查看,导入后,数据文件就在D盘了。
之后重启Docker Desktop或者Ubuntu,再用wsl -l -v命令就能看到STATE变成Running了。