错误信息
Docker 启动时出现如下错误:
System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\14606\AppData\Local\Docker\wsl\distro: exit code: -1
详细错误信息:
System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\14606\AppData\Local\Docker\wsl\distro: exit code: -1
stdout: �|�~~b
N0Rc�[�v_0
stderr:
在 Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) 位置 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:行号 146
在 Docker.Engines.WSL2.WSL2Provisioning.<DeployDistroAsync>d__17.MoveNext() 位置 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:行号 168
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() 位置 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:行号 77
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__28.MoveNext() 位置 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:行号 180
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\PR-16360\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-16360\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-16360\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92
DEBUG 记录
- 卸载 Docker-Desktop,重新安装,无效;
- 重启 Docker-Desktop 无效;
- 删除
%USERPROFILE%/.wslconfig
无效; - 以管理员身份运行,无效;
- 同时卸载 Docker-Desktop & WSL2
- 再次安装 Docker-Desktop 启动后提示:
- 安装完毕后重启,回归到之前的错误。
- 再次卸载、安装,这次不选择使用 WSL2,无效;
- 卸载,重新安装低版本 Docker-Desktop,https://docs.docker.com/desktop/windows/release-notes/#docker-desktop-352 无效
排查思路
- 可能和 .net framework 有关;
- 可能和 wsl2 有关,注意,之前使用的是 Hyper-V,现在变成了 wsl2 这可能是导致失败的一个原因;
最终解决方案
- 查看参考链接 3.
临时解决方案 cmd/shell下执行 netsh winsock reset
参考链接
- System.InvalidOperationException: Failed to deploy distro docker-desktop to C:\Users\lenova\AppData\Local\Docker\wsl\distro: exit code: -1、
- 基于WSL2 的 Docker Desktop 启动时 Failed to set version to docker-desktop: exit code: -1的解决方法...
- Windows 10 Docker InvalidOperationException Failed to set version to docker-desktop: exit code: -1
- 这个方案是有效的