This error occurs when Docker Desktop cannot detect hardware virtualization support. You need to enable virtualization (VT-x/AMD-V) in your BIOS/UEFI settings and ensure Hyper-V or WSL 2 is properly configured in Windows.
When Docker Desktop starts on Windows, it checks for hardware virtualization support. Docker requires either Hyper-V (Windows Pro/Enterprise) or WSL 2 (Windows Home/Pro) to run containers, and both of these technologies depend on CPU virtualization features being enabled. This error appears when Docker detects that: - Hardware virtualization (Intel VT-x or AMD-V/SVM) is disabled in BIOS/UEFI - Data Execution Prevention (DEP/NX bit) is disabled - The Windows Hypervisor Platform is not enabled - Required Windows features (Hyper-V or WSL 2) are not installed The error message "Docker Desktop is unable to detect a Hypervisor" or "Hardware assisted virtualization and data execution protection must be enabled in the BIOS" indicates that the underlying virtualization layer that Docker needs is not available or properly configured.
First, verify whether virtualization is currently enabled on your system:
Using Task Manager:
1. Press Ctrl+Shift+Esc to open Task Manager
2. Click the "Performance" tab
3. Select "CPU" from the left panel
4. Look for "Virtualization:" at the bottom - it should say "Enabled"
Using System Information:
systeminfoLook for the "Hyper-V Requirements" section at the bottom. If you see "A hypervisor has been detected. Features required for Hyper-V will not be displayed", virtualization is working.
If virtualization shows "Disabled", proceed to enable it in BIOS.
Restart your computer and enter BIOS/UEFI settings. The key varies by manufacturer:
| Manufacturer | BIOS Key |
|-------------|----------|
| Dell | F2 or F12 |
| HP | F10 or Esc |
| Lenovo | F1 or F2 |
| ASUS | F2 or Del |
| Acer | F2 or Del |
| MSI | Del |
For Intel CPUs, look for:
- "Intel Virtualization Technology" or "Intel VT-x"
- "VT-d" (for directed I/O)
- Usually found under: Advanced > CPU Configuration
For AMD CPUs, look for:
- "SVM Mode" (Secure Virtual Machine)
- "AMD-V"
- Usually found under: Advanced > CPU Configuration or Tweaker > Advanced CPU Settings
Enable both virtualization AND NX/XD bit:
- "Execute Disable Bit" or "NX Mode" (should be Enabled)
Save changes and exit BIOS (usually F10).
After enabling virtualization in BIOS, enable the required Windows features.
For Windows Pro/Enterprise (using Hyper-V):
1. Press Win + R, type optionalfeatures, press Enter
2. Check the following boxes:
- Hyper-V (expand and check all sub-items)
- Windows Hypervisor Platform
3. Click OK and restart when prompted
Using PowerShell (as Administrator):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -AllUsing DISM (as Administrator):
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /AllRestart your computer after enabling these features.
Windows Home doesn't have Hyper-V, but Docker Desktop can use WSL 2 instead.
Enable WSL and Virtual Machine Platform:
# Enable WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# Enable Virtual Machine Platform
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartRestart your computer, then set WSL 2 as default:
wsl --set-default-version 2Update WSL to the latest version:
wsl --updateIn Docker Desktop Settings, ensure "Use the WSL 2 based engine" is checked.
Sometimes the hypervisor launch type gets set to "Off" by other software. Fix this with:
Check current setting:
bcdeditLook for hypervisorlaunchtype. If it says "Off", change it:
Enable hypervisor auto-start (run as Administrator):
bcdedit /set hypervisorlaunchtype autoYou should see "The operation completed successfully."
Restart your computer for changes to take effect.
Note: Some anti-cheat software and virtualization tools set this to "Off". You may need to disable or configure them.
Certain software can conflict with Hyper-V and Docker:
Common conflicts:
- VirtualBox (versions before 6.0): Update to 6.0+ or uninstall
- VMware Workstation (versions before 15.5.5): Update or uninstall
- Android emulators: Some disable Hyper-V on install
- Anti-cheat software: Games like Valorant's Vanguard can disable hypervisor
- Cygwin: Some configurations conflict with Docker
If you use VirtualBox:
VirtualBox 6.0+ can work alongside Hyper-V, but performance may be reduced. Consider using Docker's built-in virtualization instead.
After removing conflicting software:
1. Re-enable Hyper-V if it was disabled
2. Run bcdedit /set hypervisorlaunchtype auto
3. Restart your computer
If Hyper-V is partially installed or corrupted, reinstall it:
Using PowerShell (as Administrator):
# Disable Hyper-V
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
# Restart computer, then re-enable
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# Also enable containers feature
Enable-WindowsOptionalFeature -Online -FeatureName Containers -AllUsing Windows Features GUI:
1. Open "Turn Windows features on or off"
2. Completely uncheck Hyper-V and all sub-components
3. Click OK and restart
4. Return and re-enable Hyper-V
5. Restart again
Docker Desktop has specific Windows version requirements:
Minimum requirements:
- Windows 10 64-bit: Version 22H2 (Build 19045) or higher
- Windows 11 64-bit: Version 23H2 (Build 22631) or higher
- Windows Pro, Enterprise, or Education for Hyper-V
- Windows Home can use WSL 2 backend
Check your Windows version:
winverIf your Windows version is too old:
1. Run Windows Update to get the latest version
2. Go to Settings > Update & Security > Windows Update
3. Install all available updates
Windows Home users:
- You cannot use Hyper-V, only WSL 2
- Ensure Docker Desktop is configured for WSL 2 backend
If nothing else works, perform a clean reinstall:
Reset Docker Desktop:
1. Open Docker Desktop (if possible)
2. Go to Settings > Troubleshoot
3. Click "Reset to factory defaults"
Clean uninstall and reinstall:
1. Uninstall Docker Desktop from Windows Settings > Apps
2. Delete remaining Docker data:
Remove-Item -Recurse -Force "$env:APPDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:PROGRAMDATA\Docker" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:PROGRAMDATA\DockerDesktop" -ErrorAction SilentlyContinue3. Restart Windows
4. Download latest Docker Desktop from https://www.docker.com/products/docker-desktop/
5. Run installer and follow prompts
6. Restart when prompted
Understanding the virtualization stack:
Docker Desktop on Windows uses a layered virtualization approach:
1. CPU Virtualization (VT-x/AMD-V): Hardware feature that must be enabled in BIOS
2. Windows Hypervisor Platform: Windows component that exposes virtualization to applications
3. Hyper-V or WSL 2: The actual virtualization backend Docker uses
4. Docker Engine: Runs inside a lightweight VM managed by Hyper-V or WSL 2
Hyper-V vs WSL 2 backend:
| Feature | Hyper-V | WSL 2 |
|---------|---------|-------|
| Windows Editions | Pro/Enterprise/Education | All editions |
| Performance | Good | Better (native Linux) |
| File system sharing | Slower | Faster |
| Memory usage | Fixed allocation | Dynamic |
| Linux kernel | Moby VM | Real Linux kernel |
WSL 2 is now the recommended backend for most users.
Secure Boot considerations:
Secure Boot is generally compatible with Hyper-V and Docker. However, if you're having issues:
- Try disabling Secure Boot temporarily to test
- Ensure your BIOS firmware is up to date
- Some older systems require Secure Boot disabled for virtualization
Corporate/Enterprise environments:
- Group Policy may control Hyper-V settings
- Windows Defender Credential Guard may conflict
- Check with IT if virtualization features are managed centrally
Nested virtualization:
If running Windows in a VM (e.g., on cloud or another hypervisor), ensure nested virtualization is enabled on the host:
- VMware: Enable "Virtualize Intel VT-x/EPT or AMD-V/RVI"
- Hyper-V: Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
- Azure/AWS: Use VM sizes that support nested virtualization
unable to configure the Docker daemon with file /etc/docker/daemon.json
How to fix 'unable to configure the Docker daemon with file daemon.json' in Docker
docker: Error response from daemon: OCI runtime create failed: container_linux.go: starting container process caused: exec: "/docker-entrypoint.sh": stat /docker-entrypoint.sh: no such file or directory
How to fix 'exec: entrypoint.sh: no such file or directory' in Docker
image operating system "linux" cannot be used on this platform
How to fix 'image operating system linux cannot be used on this platform' in Docker
dockerfile parse error line 5: unknown instruction: RRUN
How to fix 'unknown instruction' Dockerfile parse error in Docker
manifest unknown: manifest unknown
How to fix 'manifest unknown' in Docker