操作系统升级到win11之后。由于想在windows下使用docker,而docker现在已经默认使用WSL2。之前系统之中的WSL需要升级WSL2。
WSL 1和WSL2的区别如下:
WSL 1用的是Windows内核模拟的各种系统接口。虽然可以运行大部分Linux应用,但还是有不少依赖于内核的应用是无法正常运行的——例如Docker。另外WSL 1和Windows共用文件系统、网络,有些时候会比较头疼。WSL 2/Docker本质上都是Hyper-V。WSL 2是一个轻量级的Hyper-V VM;Docker for Windows如果要跑Linux镜像,会安装运行一台运行Linux的Hyper-V虚拟机,用Hyper-V的管理工具是可以看到的。
查看当前的WSL版本,在windows命令行界面运行如下命令
C:UsersAdministrator>wsl -l -v NAME STATE VERSION* Ubuntu Running 1
首先要确认已经BIOS中打开虚拟化,程序与功能–》启用或关闭Windows功能,已经打开的了Hyper-V等功能。
按照步骤 下载包
根据系统进行选择:
x64:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
arm64:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.ms运行上一步下载的更新包。
升级WSL到WSL2
在命令行窗口执行如下命令
wsl --set-version 分发版名称 版本号
分发版名称是根据在微软应用商店已经安装的版本,具体名称需要自己确认。版本号1对应的就是WSL1,2为WSL2.
该命令执行结果需要等待转制。
C:UsersAdministrator>wsl --set-version Ubuntu 2正在进行转换,这可能需要几分钟时间...有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
如果出现Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS,则说明BIOS中虚拟机未打开。
参考文档 安装 WSL |微软文档 (microsoft.com)