无法在 Windows 10 Pro 21H1 上安装 Docker Desktop

Sid*_*sia 2 docker docker-desktop wsl-2

我尝试在 Windows 10 Pro 21H1 上安装 Docker Desktop,但不断收到以下错误:

Component CommunityInstaller.EnableFeaturesAction failed: Not found 
   at CommunityInstaller.InstallWorkflow.<DoHandleD4WPackageAsync>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at CommunityInstaller.InstallWorkflow.<DoProcessAsync>d__23.MoveNext()
Run Code Online (Sandbox Code Playgroud)

我尝试过删除:

C:\Program Files\
C:\Users\username\AppData\Local\Docker
C:\Users\username\AppData\Local\Docker Desktop
Run Code Online (Sandbox Code Playgroud)

...以及其他 Docker 相关文件夹多次。

我的 WSL2 在 Ubuntu 20 系统上运行良好。

sid_c06@LAPTOP-HJCDC6N0:~$ wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
Run Code Online (Sandbox Code Playgroud)

我尝试在安装过程中取消选中 WSL2 选项,但在安装后尝试启动 Docker Desktop 时,在 WSL2 上启动 Linux 容器的步骤失败。

Unable to start
at Docker.Core.Pipe.NamedPipeClient.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup)
at Docker.Actions.<>c__DisplayClass27_0.b__0()
at Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass17_0.<.ctor>b__1()
Run Code Online (Sandbox Code Playgroud)

你能让我知道我做错了什么吗?另外,我是否应该直接在 WSL2 上的 Ubuntu 上安装 Docker 并跳过 Docker Desktop?我找不到同样的具体步骤。让我知道这是否是个好主意。

Tha*_*oce 5

我执行了许多操作来解决该问题,如下所列。不过,我相信重置 WMI 是关键操作。

  1. 我删除了 Windows 中所有剩余的 Docker/Docker Desktop 文件夹:

    ~/AppData/Local/Docker
    ~/AppData/Roaming/Docker
    C:\ProgramData\Docker
    C:\Program Files\Docker
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我还卸载并重新安装了以下 Windows 功能:

    • Hyper-V
    • Windows Subsystem Linux
    • Windows Hypervision Platform
  3. 禁用 Windows 服务Power

  4. 重置 WMI

如果问题仍然存在,请尝试以下步骤来重建存储库:

  1. 禁用并停止 WMI 服务

    sc config winmgmt start= disabled     
    net stop winmgmt
    
    Run Code Online (Sandbox Code Playgroud)

    (注意“=”和“disabled”之间有一个空格)

  2. 将存储库文件夹(位于%windir%\System32\wbem\repository)重命名为repository.old

  3. 重新启用 WMI 服务

    sc config winmgmt start= auto
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新启动机器。

参考这个超级用户的答案