System.InvalidOperationException:无法将发行版 docker-desktop 部署到 <localpath>:退出代码:-1

System.InvalidOperationException: Failed to deploy distro docker-desktop to <localpath>: exit code: -1

我正在尝试 运行 docker 我的 windows 10 本地桌面。已成功安装,但在 运行 安装它时出现以下错误。

System.InvalidOperationException:
Failed to deploy distro docker-desktop to <localpath>: exit code: -1
 stdout: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.

我想是说需要启用某些 windows 服务,但我不知道必须启用哪个服务,有人可以帮我解决这个问题吗?

docker版本 C:\Users\lenova>docker --version Docker 版本 20.10.2,内部版本 2291f61

  • 卸载Docker。
  • 取消选中 Windows 功能中 Linux 的容器、Hyper-V、Windows 子系统
  • 重启系统
  • 安装Docker桌面
  • 重启系统
  • 启动Docker桌面

右键单击 docker 图标,运行 以管理员身份(如果您的计算机具有管理员权限)。它解决了我的问题。

尝试删除 %USERPROFILE%/.wslconfig。如果有帮助,那么您可以尝试对其进行修改以使其正常工作。至于我,我删除了文件,因为在我的工作站上 docker 不想使用它

几乎可以肯定,接受的答案会起作用。但是,如果您也将 WSL 用于其他目的,则它不是一个选项。在这种情况下,您可能在 WSL 中有多个 configurations/apps,仅重新安装或删除您的配置可能不是一个好的解决方案。

此外:WSL 不是此错误的问题! 它是由 Docker 引擎配置 创建的,它将 终止 WSL 服务 (LxxsManager)。这可能是因为

  • 更改配置(由您)或
  • 因为 Docker 更新,也许还有
  • 因为 Windows 更新

您可以在 Docker 的 GitHub Issues 上找到关于此问题的详细讨论。

我在 Windows 上安装 更新后遇到了这个问题,而 运行 Docker v3.5.2。再一次,reinstalling/killing WSL 不是我的选择!所以我试图杀死所有服务(Docker 和 WSL)并更新 Docker。不幸的是,这首先不起作用,因为 LxxsManager 处于某种奇怪的状态,我什至无法再杀死它(即使是带有强制开关的管理员的 kill 命令也没有完成它的工作!)......所以这是我解决该问题的方法:

  1. 从自动启动中删除 Docker
  2. 重新启动Windows(Yippiee:WSL 再次运行!)
  3. 安装新版本 Docker(在我的例子中是 v.4.2.0)
  4. 再次重启 Windows(可能没有必要,但对我来说是因为 Docker 引擎在 Windows 重启之前没有启动)
  5. 开始 Docker (Yippiee: Docker 再次工作!☺️)

注意:由于我没有更改Docker配置,所以我安装了一个更新。如果您更改了导致该崩溃的配置选项,您的解决方案可能会有所不同。从字面上看,您可能会回滚 Docker 配置更改,而不是更新 Docker(第 3 步)。

就我而言,我遇到了类似的错误。发生这种情况是因为 Docker 桌面没有访问路径 C:\Users\Adithya\AppData\Local\Docker\wsl\distro 的权限。这在我切换到 WSL2 后端后开始发生。

解决方案是终止所有 docker 进程。接下来,Run Docker Desktop as Administrator.

System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\Adithya\AppData\Local\Docker\wsl\distro: 
exit code: -1 stdout: The operation timed out because a response was not received from the virtual machine or container.

运行 作为管理员,您通过单击右上角任务栏中的图标栏并选择切换到 windows 容器

将容器切换到 windows

https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-10-linux

如果您不需要 运行 Linux 和 Windows 容器 side-by-side,一个选项是关闭 WSL 并使用 Hyper-v反而。这应该可以正常工作。

我必须退出私人互联网访问 (PIA) VPN 才能让 docker 在我的系统上运行。不知道为什么。

我有 PgAdmin 4 应用程序 运行,当我关闭它并尝试再次启动 Docker 桌面时,它可以正常启动。

不确定是否有 link,但可以尝试一个简单的解决方案。

这对我有用:https://github.com/MicrosoftDocs/WSL/issues/547#issuecomment-873540236

  • 复制以下片段:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog08F7A3]
"AppFullPath"="C:\Windows\System32\wsl.exe"
"PermittedLspCategories"=dword:80000000
  • 保存为文件wsl.reg
  • 执行文件更新注册表
  • 再次启动 Ubuntu
  • 问题已解决