抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在windows10上卸载docker后再重装会提示已安装,但之前已经卸载了,为什么还是会这样提示呢?
是因为docker卸载之后并没有将注册表信息删掉,所以在重装的时候还是会索引到的。
下面告诉大家一个卸载干净的方法

新建一个 a.ps1 的文件


$ErrorActionPreference = "SilentlyContinue"
kill -force -processname 'Docker for Windows', com.docker.db, vpnkit, com.docker.proxy, com.docker.9pdb, moby-diag-dl, dockerd
try {
./MobyLinux.ps1 -Destroy
} Catch {} service = Get-WmiObject -Class Win32_Service -Filter "Name='com.docker.service'" if (service) { service.StopService() } if (service) { $service.Delete() }
Start-Sleep -s 5
Remove-Item -Recurse -Force “~/AppData/Local/Docker”
Remove-Item -Recurse -Force “~/AppData/Roaming/Docker”
if (Test-Path “C:\ProgramData\Docker”) { takeown.exe /F “C:\ProgramData\Docker” /R /A /D Y }
if (Test-Path “C:\ProgramData\Docker”) { icacls "C:\ProgramData\Docker" /T /C /grant Administrators:F }
Remove-Item -Recurse -Force “C:\ProgramData\Docker”
Remove-Item -Recurse -Force “C:\Program Files\Docker”
Remove-Item -Recurse -Force “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Docker”
Remove-Item -Force “C:\Users\Public\Desktop\Docker for Windows.lnk”
Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $.PSPath} | ? { $.DisplayName -eq “Docker” } | Remove-Item -Recurse -Force
Get-ChildItem HKLM:\software\classes\installer\products | % {Get-ItemProperty $.pspath} | ? { $.ProductName -eq “Docker” } | Remove-Item -Recurse -Force
Get-Item ‘HKLM:\software\Docker Inc.’ | Remove-Item -Recurse -Force
Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\Run -name “Docker for Windows” | Remove-Item -Recurse -Force
#Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | ForEach-Object {Get-ItemProperty $.PSPath} | Where-Object { $.ToString().Contains(“Docker for Windows.exe”) } | Remove-Item -Recurse -Force $.PSPath
#Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | Where-Object { $(Get-ItemPropertyValue $
) -Contains “Docker” }

执行a.ps1

将以上内容写进去,然后以管理员身份打开powershell ,并执行

./a.ps1

如果提示如下错误:

执行

set-executionpolicy remotesigned

再次执行a.ps1,成功删除。

评论