缘由
某天我突然渴望系统性地学习 docker。但我使用的操作系统是 win10 家庭版,而这个版本是无法使用 docker 的。剩下的路子,有两条:一是安装虚拟机例如 Virtual Box ,然后在虚拟机中再安装 Linux,然后基于该 Linux 安装 docker;二是利用 win10 提供的 WSL (Windows Subsystem for Linux) 来安装 Linux 系统,然后基于该 Linux 系统安装 docker。
选择
我选择了第二种方案。但 win10 中的默认安装是 WSL 1。而基于该版本的 WSL 安装的 Linux 无法使用真正的 Linux 内核,Linux 中安装的 docker 也就无法正常地运行。我们需要把 WSL1 升级为 WSL2。
- 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。
本人的 CPU 是 x64 架构。在控制台中执行了以下命令后:
winver
可以看到,我的版本高于升级所需的最低版本。接下来,就可以采用六个步骤来实现 WSL 的版本升级!
步骤
一、在带有管理员权限的命令行中执行以下命令(下同),启用适用于 Linux 的 Windows 子系统:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
二、启用虚拟平台功能:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
三、重新启动计算机,使得前面两个步骤生效。
四、下载 适用于 x64 计算机的 WSL2 Linux 内核更新包 并完成安装。
五、将 WSL2 设置为默认版本:
wsl --set-default-version 2
六、到 Microsoft Store 中选择适合你的 Linux 版本进行安装即可。
检查
这时候,我们安装的 Linux 版本就是基于 WSL2 的了。可以使用以下命令进行检查
wsl --list --verbose
VERSION 下的值为 2 就说明我们的升级是成功的。如果你在升级 WSL2 之前就安装了 Linux 子系统。则可以在完成上面的五个步骤后,就使用以下命令对 Linux 系统进行升级:
# 你应当把 Ubuntu-22.04 替换成你已安装的 Linux 子系统
wsl --set-version Ubuntu-22.04 2
到此,我们就有了一个能顺利安装 docker 并运行的子系统了!