System.InvalidOperationException: Failed to deploy distro docker-desktop......

在Windows 10系统中,用户遇到了卸载联想管家后Docker Desktop无法正常启动的问题,报错涉及Docker的部署失败。尝试卸载重装Docker Desktop未解决问题。然而,通过关闭WSL2基础引擎并重启系统,问题得到了解决,Docker Desktop恢复了正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


问题

我是win10的系统,安装了docker desktop版本,某天在我卸载了联想管家后,就docker就不能正常启动了,报错如下:
在这里插入图片描述


在这里插入图片描述


报错详细信息:

System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\user\AppData\Local\Docker\wsl\distro: exit code: -1
 stdout: �~�~�p f\hV-N�l	g�fY�v�~�~�p�S(u0

	
 stderr: 
   在 Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:行号 146
   在 Docker.Engines.WSL2.WSL2Provisioning.<DeployDistroAsync>d__17.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:行号 168
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:行号 77
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__28.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:行号 180
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行号 29
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 67
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92

解决方案

1.尝试卸载重装,无效

2.关闭 WSL 2 based engine,重启,恢复正常

在这里插入图片描述

### 使用Docker部署Windows Virtualization Platform (WVP) 为了使用Docker部署Windows Virtualization Platform (WVP),需要确保环境满足特定的要求并按照一定的流程操作。 #### 环境准备 确保操作系统支持虚拟化技术,并且已经启用了Hyper-V功能。对于Win10系统来说,这通常意味着要确认BIOS中的Intel VT-x/AMD-V选项已被激活[^5]。另外,由于涉及到容器化的应用运行于宿主机之上,因此也需要保证Docker Desktop正确安装并且能够稳定工作。如果遇到像`System.InvalidOperationException: Failed to deploy distro docker-desktop...`这样的错误提示,则可能是因为某些系统组件如Hyper-V服务未被启用或存在冲突软件影响到了其正常运作[^4]。 #### 安装配置 - **更新系统**:保持系统的最新状态有助于减少兼容性和稳定性方面的问题。 - **安装Docker Desktop**:通过官方渠道下载适合当前平台架构的版本进行安装。注意选择带有WSL 2后端引擎支持的发行版以便更好地适配后续步骤所需条件。 - **开启必要的特性和服务** - 打开“控制面板” -> “程序和功能”下的“启用或关闭Windows功能” - 勾选“Containers”, "Hyper-V", 和 "Virtual Machine Platform" - **重启计算机** #### 创建适用于WVP的应用镜像 创建自定义的Dockerfile来构建专门针对WVP优化过的应用程序映像文件: ```dockerfile FROM mcr.microsoft.com/windows/servercore:ltsc2019 AS builder WORKDIR /app COPY . . RUN powershell.exe -Command \ $ErrorActionPreference = 'Stop'; \ Set-ExecutionPolicy Bypass -Scope Process; \ ./build.ps1; FROM mcr.microsoft.com/windows/nanoserver:1809 WORKDIR /app COPY --from=builder /app/output . ENTRYPOINT ["C:\\app\\myapplication.exe"] ``` 此示例展示了基于Nano Server的基础层面上建立更轻量级的服务实例的方法之一;实际开发过程中可根据具体需求调整基础镜像的选择以及命令集的内容。 #### 启动容器并与之交互 利用之前制作好的镜像启动新的容器实例: ```bash docker run -d --name=my-wvp-app my-custom-image-name ``` 此时便可以在本地网络范围内访问由该容器承载起来的各项资源了。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智驾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值