安装docker后启动报错Failed to set version to docker-desktop: exit code: -1

2023-10-27

背景

我想用PC(Windows)上的VS code连接远程服务器(Linux)内的docker容器,这样能用编辑器editor修改文件,更加方便。VS code的插件remote-container能达到这一目的,按照它的指示guide,我需要先在本地PC(Windows)安装docker desktop。

于是我在官网下载docker installer,安装一切顺利,最后重启电脑。

重启电脑后docker启动,提示需要手动安装WSL2,我点击提示中的链接顺利安装WSL2,并且在终端测试安装成功。

但是,docker却在start engine时却报错,以下是部分错误信息:

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\master-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:行号 146
   在 Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:行号 81

我Google报错信息的前两行,并没有人遇到相同的问题,于是我漫长的解决之路开始了。

先说我的原因和解决方法

最终我是因为安装完WSL2之后,没有在Microsoft Store中下载在Windows上的Linux子系统分发版本(如Ubuntu20)。我下载之后,在Docker desktop中设置选择哪个子系统,engine就能开启了。

授人以鱼不如授人以渔

斗胆用这句话引出这一部分,下面我将我的尝试按照,推荐大家遇到问题时的解决顺序安排,希望给大家一些参考,毕竟大家遇到的问题不可能完全一样,各种各样的问题都可能出现,知道如何解决才是最重要的。

1 用报错信息的主要内容去搜索

比如我的主要错误信息就是前两行,搜索引擎可以用Google(推荐)、百度。注意,要看搜索结果中是否有关键的错误信息(第二行),没有的话也不用看了,因为并不是一种错误。比较相似的可以点开看看,看能否找到自己漏掉什么。不过需要注意系统和软件版本要对应。

如果sadly没有前人的经验,那进入下一步。

2 利用docker的diagnose诊断功能

在docker desktop软件的右上方有个bug臭虫的标志,叫做troubleshoot,点击进入后点击get support。在左侧有正在自动分析的diagnose,不过推荐使用下面小蓝字的new self-diagnose tool,分析更加详细。

 

按照指示输入分析指令后,会得到很长的分析,通常情况下直接下拉到最下面,就是最可能的问题。

我当时的问题是not install WSL Distribution docker-desktop-data,再用这个信息Google,按照博客指示推测出了应该要下载子系统,一切解决。

3 Docker的GitHub issue

如果我最开始就用docker的自我诊断功能就早解决了,而不是花了大半个下午,我接着说我其他的方法吧。

GitHub的issue是个好地方,会找到很多相似的问题。

我在issue里搜索Windows docker desktop cannot launch after installation,打开几个看,发现它们的错误代码不完全相同,试了它们的方法也没什么用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装docker后启动报错Failed to set version to docker-desktop: exit code: -1 的相关文章

随机推荐