今天在使用windows电脑安装docker时,遇到 unexpected wsl error 这个错误,找了很长时间解决办法,最终将该问题解决,目前将所有的解决办法综合了下,并留作记录。
准备
首先如果没有下载的Docker的同学可以通过这个链接地址进行Docker的下载。
Docker Personal - Sign Up for Free | Docker
通过找到Products标签来选择自己想要下载的版本进行安装。
进入BIOS确认自己的虚拟化技术有没有开启,如果没有开启,请把它开启,将其状态设置为Enabled,然后再重启。
问题
当安装完成后,因为电脑自身的原因可能会弹出此类问题(我的另外一台windows电脑也没有问题,就笔记本不可以)
如图:
解决办法
管理员身份打开命令行工具:
wsl --install
这个时候windows系统会自动给你安装一个最新的Ubuntu子系统,安装完毕后他会尝试重新启动这个的系统,如果启动成功,那么证明流程没有问题,按正常来说你的docker也会运行正常(前提你必须要联网,不然 也会报错)
如果启动不成功可能会提示该错误
出现该错误可能是由以下原因造成。
1.适用于Linux的windows系统选项没有勾选。(请务必勾选)
2.Hyper没有被开启。
执行bcdedit
命令(需使用管理员权限打开PowerShell
或CMD
)。
bcdedit
可以看到最后一项hypervisorlaunchtype
为Off
。
PS C:\Users\User> bcdedit
Windows 启动管理器
--------------------
标识符 {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
flightsigning Yes
default {current}
resumeobject {f2ef54bb-3fc0-11ec-b211-f919c86c3435}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 0
Windows 启动加载器
-------------------
标识符 {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale zh-CN
inherit {bootloadersettings}
recoverysequence {f2ef54bd-3fc0-11ec-b211-f919c86c3435}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
flightsigning Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {f2ef54bb-3fc0-11ec-b211-f919c86c3435}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Off
注意要用管理员权限打开PowerShell
或CMD
。
执行命令后需要重启电脑才能生效。
bcdedit /set hypervisorlaunchtype auto
如果还不行,那么请尝试管理员身份打开命令行工具:
netsh winsock reset
设置好重启,在有网的情况下,即可打开docker应用程序。
OK 大功告成!