默认 Windows 的 Linux 子系统(WSL)安装的 C 盘,如果有用作 Docker 镜像制作很容易磁盘不够用。可采取如下步骤迁移(以下在 Windows PowerShell 中进行的,但在 CMD.exe 中执行效果相同):
- 1、执行一下命令查看 Linux 子系统的发行版名称(distro name)
PS D:\> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu-22.04 Stopped 2
docker-desktop-data Running 2
从上可以看成名称为“Ubuntu-22.04”。
- 2、执行下列命令导出镜像
PS D:\> wsl --export Ubuntu-22.04 D:\Ubuntu-22.04
正在导出,这可能需要几分钟时间。
操作成功完成。
注意需手动先创建好目录“D:\Ubuntu-22.04”。
- 3、注销掉当前的
PS D:\> wsl --unregister Ubuntu-22.04
正在注销。
操作成功完成。
- 4、重新导入
PS D:\> wsl --import Ubuntu-22.04 D:\Ubuntu-22.04\ D:\Ubuntu-22.04\Ubuntu-22.04.tar --version 2
正在导入,这可能需要几分钟时间。
操作成功完成。
- 5、设置默认用户名
PS D:\> ubuntu2204.exe config --default-user root
注意这里的“ubuntu2204.exe”名同发行版名称(distro name)相关,如果发行版名称为 Ubuntu,则对应的名为 ubuntu.exe 。
如需在 WSL 中使用 Docker,则必须为使用“Docker Desktop WSL 2”,也就是 VERSION 对应的值需为 0。
PS D:\> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu-22.04 Stopped 2
docker-desktop-data Running 2
如果 VERSION 值为 1,参考 (https://docs.docker.com/desktop/wsl/)[https://docs.docker.com/desktop/wsl/] 进行修改。具体操作步骤为(以下在 CMD.exe 中进行的):
- 1、将 Linux 发行版升级到 v2
d:\>wsl.exe --set-version Ubuntu-22.04 2
- 2、设置 Linux 发行版为 v2
d:\>wsl.exe --set-default-version 2
- 3、设置默认的 WSL 版本
D:\>wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu-22.04 Stopped 2
docker-desktop-data Running 2
d:\>wsl.exe --set-default Ubuntu-22.04
操作成功完成。
d:\>wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
docker-desktop Running 2
docker-desktop-data Running 2
注意在 Docker Desktop 上也要设置好,勾选“Use the WSL 2 based engine”: