Docker Desktop 无法在 Windows 10 上启动 docker 守护进程

Posted

技术标签:

【中文标题】Docker Desktop 无法在 Windows 10 上启动 docker 守护进程【英文标题】:Docker Desktop cannot start the docker daemon on Windows 10 【发布时间】:2020-12-10 23:09:51 【问题描述】:

我目前在尝试在 Windows 上使用 Docker 时遇到问题。

在上次更新之前,我可以正常使用Docker,并且Docker守护进程在启动时自动启动。

我通过打开 Docker 桌面启动 Docker,我可以看到它正在启动,但它只是在那里挂了一会儿,然后自动停止,并显示以下错误消息:

Cancellation token triggered before we finished reading from the stream.
   à HttpOverStream.ByLineReader.<ReadLineAsync>d__0.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à HttpOverStream.Client.DialMessageHandler.<SendAsync>d__9.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.Core.Logging.LoggingMessageHandler.<SendAsync>d__4.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.Core\Logging\LoggingMessageHandler.cs:ligne 30
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.Core.BackendAPI.BackendAPIClient.<CreateHyperVVMAsync>d__10.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.Core\BackendAPI\BackendAPIClient.cs:ligne 92
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.Engines.LinuxHyperVEngine.<DoStartAsync>d__14.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\LinuxHyperVEngine.cs:ligne 59
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:ligne 20
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:ligne 29
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:ligne 74
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.ApiServices.StateMachines.EngineStateMachine.<StartAsync>d__14.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:ligne 69
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   à Docker.Engines.Engines.<RestartAsync>d__28.MoveNext() dans C:\workspaces\master\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\Engines.cs:ligne 272
Docker 版本:19.03.13-beta2,构建 ff3fbc9d55 Docker 桌面版本 2.3.0.4 (46911) Windows 版本:Windows 10 专业版 1809

我已尝试卸载和更新 Docker,但它不起作用。

Hyper-V 已启用,我还在 Bios 中启用了虚拟化技术。

【问题讨论】:

您可以尝试使用较旧的非测试版 docker。这可以通过在 Windows 上使用巧克力来实现 我已经尝试安装一些非测试版的docker。但是,我面临同样的问题。我开始认为是公司的防病毒软件 Symantec Endpoint Protection 阻止了 docker 守护程序的启动。 @Alex Blasco 你能解决这个问题吗?现在遇到同样的事情 @DonWoodward 我不得不使用另一台全新的公司笔记本电脑才能进行全新安装,这只是一个蛮力解决方案。很抱歉无法提供更好的方法 【参考方案1】:

打开 Docker 桌面仪表板并按照以下步骤操作:

    打开Troubleshoot页面 点击Clean / Purge data按钮 检查Hyper-V 选项 点击Delete

出现此错误是因为创建了 Hyper-V 虚拟磁盘。

我使用 Docker Desktop v3.3.1,这对我有用。

【讨论】:

所以,对于“我无法打开 Docker”的问题,您的解决方案是“打开 Docker...”??【参考方案2】:

在我的例子中,位于 %USERPROFILE%\.docker\config.json 的 docker 配置文件处于只读模式。

【讨论】:

以上是关于Docker Desktop 无法在 Windows 10 上启动 docker 守护进程的主要内容,如果未能解决你的问题,请参考以下文章

docker 在window10下的安装

windows10 docker desktop与本机数据拷贝

(win10 docker desktop) docker build 时 alpine 无法安装软件问题的解决

3.Docker Desktop安装k8s

无法通过 Spring Boot 将 Docker Desktop Kubernetes (Windows) 服务连接到本地 Postgres db

关于Redis Desktop Manager无法连接Ubuntu上的redis容器