我在 Windows 10 专业版 PC 上设置 Docker 时遇到了一些问题。当我尝试打开它时,我收到此崩溃报告:
崩溃报告截图 https://i.stack.imgur.com/uwkDZ.png
这是框内的文字:
System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\Imogen\AppData\Local\Docker\wsl\distro: exit code: -1
stdout: Access is denied.
stderr:
at Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) in C:\workspaces\PR-15138\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:line 146
at Docker.Engines.WSL2.WSL2Provisioning.<DeployDistroAsync>d__17.MoveNext() in C:\workspaces\PR-15138\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:line 169
--- 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.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() in C:\workspaces\PR-15138\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:line 78
--- 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__25.MoveNext() in C:\workspaces\PR-15138\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\LinuxWSL2Engine.cs:line 99
--- 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-15138\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-15138\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-15138\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:line 92
我已经检查了我的可视化设置并且它已启用。我的 BIOS 是旧版的,不确定 Docker 是否需要 UEFI 固件设置。我的 Hyper-V 也在 Windows 功能中启用。我还使用授权的 cmd 访问 docker。任何意见或建议将不胜感激!
发生这种情况是因为 WSL2 和 Docker 之间不兼容。
如果你跑wsl -l -v
我很确定你会看到这个:
正如你所看到的VERSION对于 Debian/Ubuntu/kali-linux 设置为 2。
而且 docker-desktop 也使用版本 2。
我的解决方案是
- 打开开始菜单并卸载 Debian/Ubuntu/kali-linux
- 卸载 Docker
- 转到控制面板 > 程序 > 程序和功能并禁用适用于 Linux 的 Windows 子系统
- 现在重新启动您的机器。
- 重新登录,再次启用 Windows Subsystem for Linux 并重新安装 Debian/Ubuntu/kali-linux
- 现在再次安装 Docker,但这次在此步骤取消选中“安装 WSL 2 所需的 Windows 组件”
..我知道这不是一个好消息,但这就是我解决它的方法。
将 WSL2 降级到 WSL1 没有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)