windows - 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
没有任何效果。请给我一些想法,我不知道该怎么办了。
谢谢,
问候,
索林
解决方案
最后我注意到这个问题是由于我在后台运行了另一个流浪的 Docker 守护程序(dockerd.exe)。在停止那个之后,我可以将 Docker 桌面切换到 Windows 容器。此外,现在在命令行中运行它是成功的:
docker -H "npipe:////./pipe/docker_engine_windows" ps
推荐阅读
- c# - 如何在mvc中删除列表的特定元素?
- spring - Spring ClasPathXmlApplicationContext registerShutDownHook 与使用 try-with-resources
- json - Symfony FOSRest 返回 html 而不是 json
- java - 在 Android 上使用 Conscrypt 进行 ECC 密钥包装
- soap - 从同一标签多次获取值
- azure - 是否可以在 Azure 中创建没有后端地址池的应用程序网关?
- r - 将两个连续空白行之间的某些行提取到R中的单个列
- java - 获取多级linkedhashmap的值
- java - 在 Spring Batch 中访问 HeaderCallBack 中的 ExecutionContext 值
- c - 如何解决c中的超时错误?