Docker Desktop не запускается в Windows 10/11: WSL 2 Engine не стартует (2025)
Docker зависает на «Starting the Docker Engine», жалуется на WSL 2 или не видит дистрибутивы? Ниже чёткий порядок: включаем нужные компоненты Windows, обновляем ядро WSL, перезапускаем службы, чиним конфликты Hyper‑V и драйверов. Всё по шагам, без лишней теории.
Коротко: что проверить сначала
- В BIOS/UEFI включена аппаратная виртуализация (Intel VT‑x/AMD‑V, SVM).
- В Windows включены «Подсистема Windows для Linux» и «Платформа виртуальной машины».
- Команда PowerShell:
wsl -l -vпоказывает дистрибутивы в версии 2. - Службы LxssManager и Docker Desktop Service запущены.
- Антивирус/«Целостность памяти» не блокирует драйверы Hyper‑V.
1) Включаем компоненты Windows
Нужны две опции: Подсистема Windows для Linux и Платформа виртуальной машины. На Pro/Enterprise также пригодится Hyper‑V. Проще через «Компоненты Windows», но можно и командами.
PowerShell (Администратор) — выполнять по одной:
DISM /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /NoRestart
DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart
DISM /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V-All /All /NoRestart
shutdown /r /t 0
После перезагрузки откройте Docker Desktop и включите «Use the WSL 2 based engine» в Settings.
2) Обновляем WSL и ядро
Windows обновляет WSL отдельно от системы. Если ядро устарело, Docker не стартует.
PowerShell (Администратор) — выполнять по одной:
wsl --status
wsl --update
wsl --set-default-version 2
wsl -l -v
Если нужный дистрибутив в версии 1, конвертируйте:
wsl --set-version Ubuntu-22.04 2
wsl -l -v
3) Перезапускаем службы и чиним частые ошибки
Бывает, что висит LxssManager или завис процесс Docker Desktop.
PowerShell (Администратор) — выполнять по одной:
Get-Service LxssManager,DockerDesktopService | Restart-Service -Force
taskkill /IM "Docker Desktop.exe" /F
wsl --shutdown
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"
Если Docker пишет «WSL distro stopped while waiting», переинициализируйте default-дистрибутив (контейнеры/образы не трогаем):
REM CMD (Администратор) — выполняйте по одной строке
wsl --shutdown
del /q /s "%LOCALAPPDATA%\Docker\wsl\*"
del /q /s "%LOCALAPPDATA%\Docker\net\*"
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"
4) Конфликты Hyper‑V, HVCI и драйверов
- На некоторых системах «Целостность памяти» (HVCI) блокирует старые драйверы виртуализации. Временно отключите её: Параметры безопасности → Изоляция ядра.
- Если установлен VirtualBox старых версий, обновите или удалите. Он конфликтует с Hyper‑V.
- Проверьте, что гипервизор активен:
Командная строка (Администратор) — выполнять по одной:
systeminfo | find "Требуется Hyper-V"
bcdedit /enum {current} | find "hypervisorlaunchtype"
bcdedit /set hypervisorlaunchtype auto
shutdown /r /t 0
5) Сеть WSL и ресурсы диска
Когда Docker не видит сеть, проверьте виртуальные адаптеры и сбросьте настройки Docker‑сети.
PowerShell (Администратор) — выполнять по одной:
wsl --shutdown
Get-NetAdapter | Where-Object {$_.Name -like "vEthernet*"} | Disable-NetAdapter -Confirm:$false
Get-NetAdapter | Where-Object {$_.Name -like "vEthernet*"} | Enable-NetAdapter -Confirm:$false
ipconfig /flushdns
Если место на диске закончилось, Docker Desktop зависает. Проверьте папку образов: %LOCALAPPDATA%\Docker и удалите ненужные образы в интерфейсе Docker → Images/Volumes.
6) Диагностика и логи
PowerShell (Администратор) — выполнять по одной:
wsl --status
wsl -l -v
Get-WinEvent -LogName "Microsoft-Windows-Lxss/Operational" -Max 100 | Select TimeCreated,Id,Message
Get-WinEvent -LogName "Application" -Max 200 | Where-Object {$_.ProviderName -like "*Docker*"} | Select TimeCreated,Id,Message
Эти логи подскажут, кто мешает запуску: ядро WSL, службы, права или сторонние драйверы.
FAQ
Docker Desktop пишет «Hardware assisted virtualization and data execution protection must be enabled».
Включите виртуализацию в BIOS/UEFI (Intel VT‑x/AMD‑V, SVM), сохраните и перезагрузитесь. Затем проверьте hypervisorlaunchtype=auto (см. выше).
Дистрибутивы WSL пропали.
Откройте %LOCALAPPDATA%\Packages, проверьте папки Ubuntu/Debian. Если были очищены «оптимизаторами», переустановите из Microsoft Store и восстановите бэкап, если делали.
Docker запускается, но контейнеры не видят сеть.
Сбросьте vSwitch (см. раздел «Сеть WSL») и отключите сторонние VPN/фильтры. Проверьте, что антивирус не ломает NAT.