首页 > 解决方案 > Docker Desktop 不会切换到 Windows 容器(在 Windows 10 上)

问题描述

我有 Windows 10 专业版,版本 21H1。在 BIOS 中启用了虚拟化,Hyper-V 正在运行。我已经安装了适用于 Windows 的 Docker Desktop,如此 所述。我启动了 Docker 桌面,一切似乎都可以在 Linux 容器上正常工作。但是,当我切换到 Windows 容器时,我不断遇到此堆栈跟踪崩溃:

Docker.Core.DockerException:所需的服务进程已在 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines 中的 Docker.Engines.DockerDaemonChecker.d__5.MoveNext() 处退出\DockerDaemonChecker.cs:第 58 行 --- 从先前引发异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines\WindowsContainersEngine.cs: 56 行中的 Docker.Engines.WindowsContainersEngine.d__12.MoveNext() --- 结束从以前抛出异常的位置的堆栈跟踪 --- 在 C 中 Docker.Engines.WindowsContainersEngine.d__12.MoveNext() 的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw():\workspaces\PR-16360\src\github.com\docker\pinata\win\src\Docker.Engines\WindowsContainersEngine.cs:line 65 --- 堆栈跟踪从上一个引发异常的位置结束---在系统.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Docker.ApiServices.StateMachines.TaskExtensions.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() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Docker.ApiServices.StateMachines.StartTransition.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.d__5.MoveNext() 在 C:\workspaces\PR-16360\src\github.com\docker\pinata\win\src\ Docker.ApiServices\StateMachines\StartTransition.cs:第 92 行ApiServices\StateMachines\StartTransition.cs:第 92 行ApiServices\StateMachines\StartTransition.cs:第 92 行

在日志中,我不断看到这一行:

msg="错误观察事件流:来自守护进程的错误响应:打开 \\.\pipe\docker_engine_windows:系统找不到指定的文件。"

我尝试了各种推荐的修复方法,例如:

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon

没有任何效果。请给我一些想法,我不知道该怎么办了。

谢谢,

问候,

索林

标签: windowsdockerdocker-desktop

解决方案


最后我注意到这个问题是由于我在后台运行了另一个流浪的 Docker 守护程序(dockerd.exe)。在停止那个之后,我可以将 Docker 桌面切换到 Windows 容器。此外,现在在命令行中运行它是成功的:

docker -H "npipe:////./pipe/docker_engine_windows" ps

推荐阅读