#云原生征文# WSL 2 installation is incomplete.【BUG解决】 原创

已注销
发布于 2022-6-20 16:28
浏览
1收藏

@[toc]

问题描述:

本文解决俩个Docker报错:分别是:
1.WSL 2 installation is incomplete.
2.System.InvalidOperationException: Failed to set version to docker-desktop: exit code: -1
#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区

今天在安装Docker成功之后,运行Docker,出现了以下错误:

WSL 2 installation is incomplete.
The WSL 2 Linux kernel is now installed using a separate MSI update package.Please click the link and follow the instructions to install the kernel update:https://aka.ms/wsl2kernel.
Press Restart after installing the Linux kernel.
#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区

原因分析:

当我们安装docker desktop时,他会问我们是否需要使用wsl2(基于Windows的Linux子系统)。如果没有,我们将使用Hyper-V虚拟机运行。然而,与虚拟机相比,该子系统具有更好的性能。

The WAL 2 Linux kernel is now installed using a separate MSI update package.

问题就在这里!

解决方案:

我们先去系统里查看一下有没有启用Windows的Linux子系统,步骤如下:
控制面板->程序->程序和功能

#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区

检测一下有没有勾选这里:启用Windows的Linux子系统
#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区

如果没有的话,我们勾选上,重新启动电脑,打开Docker。
如果还是报WSL 2 installation is incomplete.问题的话。原因就剩一个了就是:
我们使用的wsl2版本很旧,因此需要手动更新。我们可以根据提示从微软官网下载最新版本的wsl2,然后正常打开。
下面这个链接,访问下载,安装更新:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载慢的话使用谷歌游览器下载哈,亲测好用!
安装最新版本的wsl2:
#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区
重新启动。运行。

到这里大部分可以成功运行了。如果还没有,还有终极大招:
如果这时候报错 System.InvalidOperationException: Failed to set version to docker-desktop: exit code: -1

错误如下:

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
 stdout: �S��v�[a�{|�W
N/ec\Ջ�v�d\O0
stderr: 
   在 Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:行号 146
   在 Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:行号 82
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__26.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\LinuxWSL2Engine.cs:行号 104
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行号 29
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 67
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92

我们用管理员身份大开cmd:
输入:

netsh winsock reset

执行,百分百解决这个问题!

注意:这命令要慎用,这是把原来的docker系统给删掉,相当于是重置docker-desktop,我里面的镜像和容器都没了。再启动docker-desktop会重新生成里的docker-desktop和docker-desktop-data
#云原生征文# WSL 2 installation is incomplete.【BUG解决】-鸿蒙开发者社区

【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
3
收藏 1
回复
举报
回复
    相关推荐