为在本机基于Docker部署Dify,根据网上的教程升级了WSL 2并且安装了Docker Desktop,但是启动Docker Desktop时总是报错,错误信息及截图如下所示:
running wslexec: An error occurred while running the command. DockerDesktop/Wsl/ExecError: c:\windows\system32\wsl.exe --version: exit status 0xffffffff (stderr: , stdout: }

在这里插入图片描述
  百度错误信息,同时咨询DeepSeek和豆包后,首先检查虚拟化相关的功能及BIOS中的虚拟化设置是否启动,经检查均已启用,如下图所示:
在这里插入图片描述
  打开powershell,依次运行wsl --status和wsl --version命令,前者能正常运行,但后者提示命令行选项无效,说明WSL基础组件已正常运行,但是Windows 10自带的旧版本,不支持 --version 参数,而Docker Desktop强制要求WSL 2。运行下面的命令设置WSL 2为默认版本。

# 确认已安装的WSL发行版
wsl -l -v

# 设置WSL 2为默认版本
wsl --set-default-version 2

  重启电脑后再次运行wsl --status和wsl --version命令,这两者均可正常执行,但启动Docker Desktop依然报同样的错误。运行wsl -l -v命令,正常运行后应能看到docker-desktop相关的行,且version列显示为2,但实际运行命令后没有看到docker-desktop相关的行,能看到version列显示为2,但是name为Ubuntu,state为stopped,说明WSL2本身正常,但Docker Desktop的设置可能有问题。打开powershell,运行下面两个命令后重启电脑。

dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  重启电脑之后,打开Docker Desktop(忽略报错),在Settings → Resources → WSL Integration中进行下图所示设置,然后点击Apply & Restart。
在这里插入图片描述

  重新打开Docker Desktop,错误提示消失。同时在命令行中执行wsl -l -v命令,也能看到与docker-desktop 相关的行。
在这里插入图片描述

更多推荐