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?我找不到同样的具体步骤。让我知道这是否是个好主意。
我执行了许多操作来解决该问题,如下所列。不过,我相信重置 WMI 是关键操作。
我删除了 Windows 中所有剩余的 Docker/Docker Desktop 文件夹:
~/AppData/Local/Docker
~/AppData/Roaming/Docker
C:\ProgramData\Docker
C:\Program Files\Docker
Run Code Online (Sandbox Code Playgroud)
我还卸载并重新安装了以下 Windows 功能:
Hyper-VWindows Subsystem LinuxWindows Hypervision Platform。禁用 Windows 服务Power
重置 WMI
禁用并停止 WMI 服务:
sc config winmgmt start= disabled
net stop winmgmt
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
Winmgmt /salvagerepository %windir%\System32\wbem
Winmgmt /resetrepository %windir%\System32\wbem
Run Code Online (Sandbox Code Playgroud)
重新启用 WMI 服务并重新启动:
sc config winmgmt start= auto
Run Code Online (Sandbox Code Playgroud)
(注意“=”和“auto”之间有一个空格)
如果问题仍然存在,请尝试以下步骤来重建存储库:
禁用并停止 WMI 服务
sc config winmgmt start= disabled
net stop winmgmt
Run Code Online (Sandbox Code Playgroud)
(注意“=”和“disabled”之间有一个空格)
将存储库文件夹(位于%windir%\System32\wbem\repository)重命名为repository.old
重新启用 WMI 服务
sc config winmgmt start= auto
Run Code Online (Sandbox Code Playgroud)
重新启动机器。
| 归档时间: |
|
| 查看次数: |
4248 次 |
| 最近记录: |