报错发生背景:
docker都会习惯性保持版本最新,每次提示update都会去更新,然而在2022年4月份某次更新后,启动失败, win10操作系统,报错日志如下:
System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: 11
stdout:
stderr:
at Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:line 146
at Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:line 81
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__28.MoveNext() in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:line 179
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:line 29
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 67
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() in C:\workspaces\PR-16841\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 92
踩坑
百度搜索引擎无一例外都是引导到CSDN,所提供解决方法去重后就3个
方案1、在cmd执行 netsh winsock reset 重启docker
方案2、下载NoLsp,下载的文件放到C:\Windows\System32下,(以管理员的身份)cmd执行NoLsp.exe c:\windows\system32\wsl.exe
方案3、下载旧版本docker
逐一尝试后,依旧报同样的错。尝试去GITHUB上看,翻了多个issue,CSDN的方案大抵是搬运自这里
看到一个用户和我报错一致,重装系统解决了问题。
又尝试使用 troubleshoot/get support,无法连接。
经过
查了2小时未得到有效的解决办法,准备重装系统的时候,尝试了一个新方案,问题得到解决,没有精准定位到哪一步解决了问题,说下整体操作。
1、下载新版docker (截至2022/6/13最新版本4.9.0)
2、卸载原有UBUNTU,在MSstore 重装了ubuntu 20.04 LTS
3、执行wsl --update 更新linux内核,并重启 win10(执行该命令需要把接受产品更新进行勾选)
4、安装docker,启动报错,使用 clean /purge data,全选进行删除,等待结束。(图是后截屏的,未启动时设置无法选取)
结果
等待删除完成后重启docker,启动画面如下
感谢
感谢Ryan_j 大佬的评论给了一个新的方向,解决了燃眉之急
愿CSDN多一些思考,多一些亲身尝试,少些搬运抄袭。