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

Unable to install Docker Desktop on Windows 10 Pro 21H1

我正在尝试在 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()

我试过删除:

C:\Program Files\
C:\Users\username\AppData\Local\Docker
C:\Users\username\AppData\Local\Docker Desktop

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

我的系统上有 WSL2 运行,Ubuntu 20。

sid_c06@LAPTOP-HJCDC6N0:~$ wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

我尝试在安装期间取消选中 WSL2 选项,但是在安装后尝试启动 Docker 桌面时,启动 Linux WSL2 上的容器的步骤失败。

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()

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

我执行了下面列出的许多操作来解决它。不过,我认为重置 WMI 是关键操作。

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

    ~/AppData/Local/Docker
    ~/AppData/Roaming/Docker
    C:\ProgramData\Docker
    C:\Program Files\Docker
    
  2. 我还卸载并重新安装了以下 windows 功能:

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

  4. 重置 WMI

    • 禁用并停止 WMI 服务:

      sc config winmgmt start= disabled
      net stop winmgmt
      
    • 运行以下命令:

      Winmgmt /salvagerepository %windir%\System32\wbem
      Winmgmt /resetrepository %windir%\System32\wbem
      
    • 重新启用 WMI 服务并重新启动:

      sc config winmgmt start= auto
      

      (注意'='和'auto'之间有一个空格)

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

  1. 禁用并停止 WMI 服务

    sc config winmgmt start= disabled     
    net stop winmgmt
    

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

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

  3. 重新启用 WMI 服务

    sc config winmgmt start= auto
    
  4. 重启机器。

引用this SuperUser answer