Docker安装失败:Docker Desktop installation failed

问题描述

安装过程中出现 "Docker Desktop installation failed. 值不能为 null。参数名: path" 错误提示

根本原因

1.获取日志(一般放在C:\Users\*****\AppData\Local\Docker)

根据你贴出的日志片段,Docker Desktop 安装失败的根本原因是:

System.ArgumentNullException: 值不能为 null。参数名: path

来自函数调用:System.IO.Path.GetFullPathInternal(String path)

发生位置:Docker.Installer.ExistingInstallation.FromRegistry(...)

根因分析:

Docker 安装器在读取注册表中上一次安装的卸载路径 时,发现了一个 空值(null) ,从而导致 Path.GetFullPath() 函数崩溃。

换句话说:之前有一个 Docker 安装的残留信息还在注册表里,但路径为空或损坏,安装程序读取这个"无效路径"时直接崩了。

解决方案

方法一:使用注册表编辑器手动清理残留

1.按 Win + R,输入 regedit 回车,打开注册表编辑器

2.浏览到以下路径(可能存在多个):

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

3.在这些路径下,逐个查找以下可能与 Docker 相关的子项(键):

  • 名称或 DisplayName 中包含 Docker, Docker Desktop 等。

  • 有些键值可能如下图(注册表项名称可能是 GUID 格式):

    java 复制代码
    {F36A3A84-...} DisplayName = Docker Desktop UninstallString = ...

4.找到后,如果其中的 InstallLocationUninstallString 是空的,直接右键删除整个项。

方法二:使用 PowerShell 清理注册表中空路径的 Docker 项(推荐)

以管理员身份运行 PowerShell,执行下面脚本:

# 要检查的注册表路径 $paths = @( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" ) foreach ($path in $paths) { Get-ChildItem $path | ForEach-Object { $displayName = ($_ | Get-ItemProperty).DisplayName if ($displayName -like "*Docker*") { $uninstallString = ($_ | Get-ItemProperty).UninstallString if ([string]::IsNullOrWhiteSpace($uninstallString)) { Write-Host "清理残留项:" $displayName Remove-Item $_.PsPath -Recurse -Force } } } }

执行后会自动删除注册表中带"Docker"但路径为空的项。

相关推荐
不愿透露姓名的大鹏3 分钟前
Linux生产环境性能优化:内存优先策略,彻底规避Swap性能损耗
linux·运维·服务器·性能优化
冷色系里的一抹暖调6 分钟前
Dify 插件离线打包完整指南(Windows + Docker 版)
docker·ai·dify
l1t7 分钟前
对在aarch64 Linux环境编译安装的CinderX补充测试
linux·运维·服务器·python·jit
上海云盾-小余10 分钟前
服务器异常流量如何识别?从监控定位到防御处置全流程
运维·服务器
honortech15 分钟前
docker 配置 MySQL 主从数据库
数据库·mysql·docker
姚永强19 分钟前
简单论坛搭建——运维方向模拟
运维
小猪咪piggy42 分钟前
【接口自动化】(2) pytest 测试框架
运维·自动化·pytest
me8321 小时前
【Linux】Docker部署Jenkins
servlet·docker·jenkins
A.A呐1 小时前
【Linux第二十五章】高级IO
linux·运维·服务器
zzzsde1 小时前
【Linux】库的制作与使用(2)ELF&&静态链接
linux·运维·服务器