Skip to content

Instantly share code, notes, and snippets.

@rsrini7
Forked from Instagit/rm-docker.ps1
Created July 4, 2021 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rsrini7/b1e89037b2b14ece255a34303432fe15 to your computer and use it in GitHub Desktop.
Save rsrini7/b1e89037b2b14ece255a34303432fe15 to your computer and use it in GitHub Desktop.
Remove Docker for Windows
$ErrorActionPreference = "SilentlyContinue"
# stop Docker processes
kill -force -processname 'Docker for Windows', com.docker.db, vpnkit, com.docker.proxy, com.docker.9pdb, moby-diag-dl, dockerd
# kill MobyLinux
try {
./MobyLinux.ps1 -Destroy
} Catch {}
# stop and remove service
$service = Get-WmiObject -Class Win32_Service -Filter "Name='com.docker.service'"
if ($service) { $service.StopService() }
if ($service) { $service.Delete() }
Start-Sleep -s 5
# take ownership of Docker directories and grant permissions
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 }
if (Test-Path "C:\ProgramData\DockerDesktop") { takeown.exe /F "C:\ProgramData\DockerDesktop" /R /A /D Y }
if (Test-Path "C:\ProgramData\DockerDesktop") { icacls "C:\ProgramData\DockerDesktop\" /T /C /grant Administrators:F }
# remove files
Remove-Item -Recurse -Force "~/AppData/Local/Docker"
Remove-Item -Recurse -Force "~/AppData/Roaming/Docker"
Remove-Item -Recurse -Force "~/AppData/Roaming/Docker Desktop"
Remove-Item -Recurse -Force "C:\ProgramData\Docker"
Remove-Item -Recurse -Force "C:\ProgramData\DockerDesktop"
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"
# delete registry keys
Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $_.PSPath} | ? { $_.DisplayName -eq "Docker" } | Remove-Item -Recurse -Force
Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $_.PSPath} | ? { $_.DisplayName -eq "Docker Desktop" } | 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
# stop and remove Docker sub system
wsl --shutdown docker-desktop
wsl --unregister docker-desktop
wsl --shutdown docker-desktop-data
wsl --unregister docker-desktop-data
@rsrini7
Copy link
Author

rsrini7 commented Jul 4, 2021

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

@rsrini7
Copy link
Author

rsrini7 commented Jul 4, 2021

Get-HNSNetwork | Remove-HNSNetwork

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment