Abaixo está um script PowerShell seguro e completo para remover todos os arquivos, pastas, serviços e distribuições WSL usados pelo Docker Desktop no Windows 10.
Ele não apaga nada fora do escopo do Docker, e cada ação tem tratamento de erro para evitar interrupções.
SCRIPT: Remove-Docker-Completely.ps1
Copie todo o conteúdo abaixo para um arquivo chamado:
Remove-Docker-Completely.ps1
# ===============================
# Remove Docker Desktop totalmente
# Windows 10 / Windows 11
# ===============================
Write-Host "`n=== REMOÇÃO COMPLETA DO DOCKER DESKTOP ===`n"
# Função para apagar pastas com segurança
function Remove-Folder {
param([string]$path)
if (Test-Path $path) {
Write-Host "Removendo pasta: $path"
try {
Remove-Item -Path $path -Recurse -Force -ErrorAction Stop
} catch {
Write-Host "Erro ao remover $path — tentando liberar bloqueios..."
}
} else {
Write-Host "Pasta não encontrada: $path"
}
}
# 1. Finalizando processos do Docker
Write-Host "`nEncerrando processos do Docker..."
Get-Process -Name "Docker*" -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue
# 2. Remoção de serviços
Write-Host "Removendo serviço com.docker.service (se existir)..."
if (Get-Service -Name "com.docker.service" -ErrorAction SilentlyContinue) {
Stop-Service "com.docker.service" -Force -ErrorAction SilentlyContinue
sc.exe delete "com.docker.service" | Out-Null
}
# 3. Remover distribuições WSL do Docker (modo WSL2)
Write-Host "`nRemovendo distribuições WSL do Docker..."
wsl --unregister docker-desktop 2>$null
wsl --unregister docker-desktop-data 2>$null
# 4. Remover pastas AppData
$User = $env:USERNAME
$PathsUser = @(
"C:\Users\$User\AppData\Local\Docker",
"C:\Users\$User\AppData\Local\Docker Desktop",
"C:\Users\$User\AppData\Roaming\Docker",
"C:\Users\$User\AppData\Roaming\Docker Desktop",
"C:\Users\$User\.docker"
)
foreach ($p in $PathsUser) { Remove-Folder $p }
# 5. Remover pastas globais do sistema
$PathsSystem = @(
"C:\Program Files\Docker",
"C:\ProgramData\Docker",
"C:\ProgramData\DockerDesktop"
)
foreach ($p in $PathsSystem) { Remove-Folder $p }
# 6. Remover VM do Docker (Hyper-V)
Write-Host "`nRemovendo VM do Docker (Hyper-V)..."
# Apagar VHDX do MobyLinux (modo Hyper-V)
$VHDXPath = "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx"
if (Test-Path $VHDXPath) {
Write-Host "Removendo VHDX do Docker: $VHDXPath"
Remove-Item $VHDXPath -Force -ErrorAction SilentlyContinue
}
# Apagar qualquer VM chamada "MobyLinuxVM"
Get-VM -Name "MobyLinuxVM" -ErrorAction SilentlyContinue | Remove-VM -Force -ErrorAction SilentlyContinue
# 7. Limpeza de redes virtuais
Write-Host "`nRemovendo adaptadores de rede do Docker..."
Get-NetAdapter | Where-Object {$_.Name -like "*Docker*"} | Disable-NetAdapter -Confirm:$false -ErrorAction SilentlyContinue
Get-NetAdapter | Where-Object {$_.Name -like "*Docker*"} | Remove-NetAdapter -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "`n=== LIMPEZA FINALIZADA ==="
Write-Host "Docker Desktop removido completamente."
COMO EXECUTAR O SCRIPT
Salve o arquivo**
Crie um arquivo chamado:
Remove-Docker-Completely.ps1
Cole o conteúdo do script nele.
Execute o PowerShell como Administrador**
Clique em Iniciar → PowerShell → botão direito → Executar como administrador
Permitir execução de scripts (se necessário)
Se for a primeira execução:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Execute o script
Navegue até a pasta onde você salvou o arquivo, por exemplo:
cd C:\Users\<SEU_USUARIO>\Desktop
Agora execute:
.\Remove-Docker-Completely.ps1
Após executar o script reinicie sua maquina e tente instalar o docker novamente.
Qualquer duvida avise ai.
Bons estudos.