附上WSL文档Windows Subsystem for Linux 文档 | Microsoft Learn
整个更新过程分为两部分:1. 启用WSL功能;2. 将WSL 1升级到WSL 2并更新内核。
步骤 1:启用“Windows Subsystem for Linux”和“虚拟机平台”功能
-
以管理员身份打开 PowerShell(在开始菜单上右键点击,选择“Windows PowerShell (管理员)”)。
-
依次执行以下两条命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
非常重要: 执行完以上命令后,重启电脑。
步骤 2:下载并安装 WSL 2 Linux 内核更新包
-
访问微软官方下载页面,下载最新的内核更新包:
Manual installation steps for older versions of WSL | Microsoft Learn -
运行下载好的
wsl_update_x64.msi
文件,按照提示完成安装。
步骤 3:将 WSL 2 设置为默认版本
-
电脑重启且内核安装完成后,再次以管理员身份打开 PowerShell。
-
运行以下命令,将 WSL 的默认版本设置为 2:
wsl --set-default-version 2
步骤 4:确认 Docker Desktop 配置
-
右键点击任务栏的 Docker 图标,选择 Settings。
-
确保在 General 选项中,Use the WSL 2 based engine 已被勾选。
-
在 Resources -> WSL Integration 选项中,确保已启用您希望 Docker 使用的 Linux 发行版(例如 Ubuntu)。
步骤 5:验证是否成功
完成以上所有步骤后,再次尝试启动 Docker Desktop。它应该可以正常启动了。
您也可以在 PowerShell 或命令提示符中运行以下命令来验证 WSL 版本:
wsl --list --verbose
此命令会列出所有已安装的 Linux 发行版及其对应的 WSL 版本。请确保它们的版本都是 2。
问题:
执行wsl --list --verbose报错
这是因为Docker Desktop 依赖于这个 Linux 发行版来作为其运行的后端引擎。
解决方案:
方法一:通过 Microsoft Store 安装(推荐,最简单,国内用户可能访问不了可以用方法二)
这是最直接的方法,正如错误提示所建议的。
-
打开 Microsoft Store (微软商店)。
-
在搜索框中搜索 Ubuntu。
-
在搜索结果中,选择 Ubuntu(通常是最新版本,如 22.04 LTS),不要选择 “Ubuntu on Windows” 那个旧的。
-
点击“获取”或“安装”按钮。安装过程不需要您输入任何命令,全部自动完成。
方法二:手动下载并安装 Linux 发行版
微软官方提供了离线安装包,我们可以绕过 Microsoft Store 直接安装。
步骤 1:下载官方离线包
这里以最流行的 Ubuntu 为例(推荐使用最新的 LTS 版本,如 22.04)。
-
打开浏览器,访问 微软官方 WSL 发行版下载目录:
Manual installation steps for older versions of WSL | Microsoft Learn -
在页面中找到 "Ubuntu" 的下载链接(通常是一个
.appx
或.msixbundle
文件),点击下载。-
直接链接(版本可能不是最新,建议从上面页面获取):
-
Ubuntu 22.04 LTS: https://aka.ms/wslubuntu2204
-
Ubuntu 20.04 LTS: https://aka.ms/wslubuntu2004
-
-
步骤 2:安装下载的发行版
-
找到下载好的文件(例如
Ubuntu_2204.1.7.0_x64.appx
)。 -
将其重命名,把文件后缀从
.appx
改为.zip
。-
如果文件后缀是
.msixbundle
,同样改为.zip
。
-
-
右键点击这个
.zip
文件,选择“全部解压缩”。 -
解压后会得到一个文件夹,进入该文件夹。
-
在里面找到名为
ubuntu.exe
(或者ubuntu2204.exe
)的文件,双击运行它。 -
运行后,会打开一个命令行窗口,提示你设置用户名和密码。
-
注意:输入密码时,屏幕上不会有任何显示(如
*
号),这是正常的,盲输完成后按回车即可。 -
这个用户名和密码是将来你在这个 Linux 子系统里执行
sudo
命令时需要的,请务必记住。
-
步骤 3:验证安装并设置为 WSL 2
-
安装完成后,再次以管理员身份打开 PowerShell。
-
运行之前用过的命令,现在你应该能看到已安装的发行版了:
powershell
wsl -l -v
-
确保你的 Ubuntu 发行版使用的是 WSL 2。如果其
VERSION
列显示为 1,请使用以下命令将其设置为 2(将Ubuntu-22.04
替换为你的发行版名称):powershell
wsl --set-version Ubuntu-22.04 2
-
这个过程可能需要几分钟,系统会进行格式转换。
-
-
你也可以设置 WSL 2 为所有新发行版的默认版本:
powershell
wsl --set-default-version 2
步骤 4:启动 Docker Desktop
完成以上所有步骤后,再次尝试启动 Docker Desktop。现在它检测到了可用的 WSL 2 和 Linux 发行版,应该能够正常启动了。