This error occurs when Docker cannot start a container because the host system lacks required virtualization support, or there is a mismatch between container OS type and Docker's configuration. Common fixes include enabling virtualization in BIOS, switching between Linux and Windows container modes, or updating WSL 2.
This error indicates that Docker's daemon cannot start a container because the underlying operating system or virtualization framework is not properly configured or compatible with the requested container type. The error "failed to start: operating system: not supported" typically occurs in these scenarios: (1) Docker Desktop cannot initialize its virtual machine due to missing Hyper-V or WSL 2 components, (2) you are trying to run a container built for a different platform (Linux vs Windows), or (3) the virtualization features required by Docker are disabled in your system's BIOS or firmware. On Windows, Docker Desktop requires either Hyper-V or WSL 2 to run Linux containers. On macOS, Docker Desktop uses a lightweight virtual machine. When these virtualization layers are misconfigured or unavailable, Docker cannot create the isolated environment needed to run containers, resulting in this error.
First, diagnose the current state of Docker:
# Check if Docker daemon is responding
docker info
# Check Docker version and OS type
docker version --format '{{.Server.Os}}'
# On Windows, check current container mode
docker info | findstr "OSType"If Docker info fails completely, Docker Desktop may not be starting properly. Check the Docker Desktop logs:
# View Docker Desktop logs on Windows
Get-Content "$env:APPDATA\Docker\log.txt" -Tail 50This will help identify whether the issue is with Docker startup or container creation.
The most common cause of this error on Windows is an outdated WSL 2 kernel. Update it:
# Run PowerShell as Administrator
wsl --update
# Check WSL status
wsl --status
# Set WSL 2 as default version
wsl --set-default-version 2
# Restart WSL
wsl --shutdownIf WSL is not installed at all:
# Install WSL with default Ubuntu distribution
wsl --install
# Restart your computer after installation
Restart-ComputerAfter updating WSL, restart Docker Desktop and try again.
Enable the required Windows features for Docker:
# Run PowerShell as Administrator
# Enable Hyper-V (Pro/Enterprise/Education only)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# Enable Containers feature
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All
# Enable Virtual Machine Platform (required for WSL 2)
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All
# Restart computer to apply changes
Restart-ComputerNote: Windows Home edition does not support Hyper-V. Use WSL 2 backend instead:
1. Open Docker Desktop Settings
2. Go to General
3. Ensure "Use the WSL 2 based engine" is checked
4. Click Apply & Restart
Docker requires hardware virtualization support. Check if it's enabled:
# Check virtualization status
systeminfo | findstr /i "virtualization"
# Or use PowerShell
Get-ComputerInfo | Select-Object HyperVisorPresent, HyperVRequirementVirtualizationFirmwareEnabledIf virtualization is disabled, enable it in BIOS/UEFI:
1. Restart your computer
2. Press the BIOS key during startup (usually F2, F10, F12, DEL, or ESC)
3. Navigate to CPU or Advanced settings
4. Enable Intel VT-x (Intel) or AMD-V (AMD)
5. Enable Intel VT-d or AMD IOMMU if available
6. Save and exit BIOS
After enabling, boot into Windows and verify:
# Should show "Virtualization Enabled In Firmware: Yes"
systeminfo | findstr /i "virtualization"If you're running the wrong container type, switch modes:
Using Docker Desktop GUI:
1. Right-click the Docker whale icon in the system tray
2. Select "Switch to Linux containers..." or "Switch to Windows containers..."
3. Wait for Docker to restart
Using command line:
# Toggle between Linux and Windows containers
& "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
# Verify current mode
docker info | findstr "OSType"If the switch option is missing from the menu:
- Update Docker Desktop to the latest version
- Ensure Hyper-V is enabled (for Windows containers)
- Restart Docker Desktop
Some antivirus software can block Docker's virtualization components:
Temporary test:
1. Temporarily disable your antivirus
2. Try starting Docker Desktop
3. If it works, add Docker to your antivirus exclusions
Add exclusions for Docker paths:
- C:\Program Files\Docker
- C:\ProgramData\Docker
- C:\Users\<username>\AppData\Local\Docker
- C:\Users\<username>\AppData\Roaming\Docker
- %LOCALAPPDATA%\Docker\wsl
Known conflicting software:
- Some versions of Kaspersky, McAfee, and Norton
- VMware Workstation (can conflict with Hyper-V)
- VirtualBox (older versions conflict with Hyper-V)
- Android emulators that disable Hyper-V
If other solutions haven't worked, try resetting Docker Desktop:
Soft reset (preserves data):
1. Open Docker Desktop
2. Go to Settings > Troubleshoot
3. Click "Restart Docker Desktop"
Factory reset (removes all data):
1. Open Docker Desktop
2. Go to Settings > Troubleshoot
3. Click "Reset to factory defaults"
4. Confirm the reset
Manual cleanup and reinstall:
# Stop Docker processes
Stop-Process -Name "Docker Desktop" -Force -ErrorAction SilentlyContinue
Stop-Process -Name "com.docker.backend" -Force -ErrorAction SilentlyContinue
# Uninstall Docker Desktop (use Settings > Apps or)
# Download and run the installer with /uninstall flag
# Remove Docker data directories
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
# Restart computer
Restart-Computer
# Reinstall Docker Desktop from docker.comOn some Windows systems, the vmcompute service needs to be configured:
# Check vmcompute service status
Get-Service vmcompute
# Start the service if stopped
net start vmcompute
# If the service fails, check Windows Security settingsDisable CFG for vmcompute (advanced):
1. Open Windows Security
2. Go to "App & Browser control"
3. Click "Exploit protection settings"
4. Switch to "Program settings" tab
5. Find C:\WINDOWS\System32\vmcompute.exe
6. Click Edit
7. Scroll to "Code flow guard (CFG)"
8. Uncheck "Override system settings"
9. Restart vmcompute: net start vmcompute
Then restart Docker Desktop.
### Understanding Docker's Virtualization Requirements
Docker on Windows uses different backends depending on your configuration:
| Backend | Requirements | Container Types |
|---------|-------------|-----------------|
| WSL 2 | WSL 2 enabled, Windows 10 v2004+ | Linux containers |
| Hyper-V | Pro/Enterprise, VT-x enabled | Linux and Windows containers |
| Windows Containers | Container feature enabled | Windows containers only |
### Diagnosing Virtualization Framework Issues
Use these commands to diagnose virtualization problems:
# Check all virtualization-related features
Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -match 'Hyper|Virtual|Container|WSL'}
# Check Hyper-V status
Get-VMHost -ErrorAction SilentlyContinue
# Verify WSL distributions
wsl -l -v
# Check Docker's internal logs
Get-EventLog -LogName Application -Source Docker -Newest 20### Running Docker on Windows Server
On Windows Server, the setup is different:
# Install Docker on Windows Server
Install-WindowsFeature -Name Containers
Install-Module DockerMsftProvider -Force
Install-Package Docker -ProviderName DockerMsftProvider -Force
# Start Docker service
Start-Service Docker
# For Linux containers on Windows Server, enable LCOW
# Edit C:\ProgramData\docker\config\daemon.json
{
"experimental": true
}### M1/M2 Mac Considerations
On Apple Silicon Macs, you may see similar errors when trying to run amd64 images:
# Check architecture
docker info | grep Architecture
# Enable Rosetta emulation in Docker Desktop
# Settings > Features in development > Use Rosetta for x86/amd64 emulation
# Or specify platform explicitly
docker run --platform linux/amd64 your-image### Using containerd for Better Compatibility
Enabling containerd can resolve some image pulling issues:
1. Open Docker Desktop Settings
2. Go to General
3. Check "Use containerd for pulling and storing images"
4. Apply & Restart
This uses containerd's snapshotters which can handle cross-platform images better.
### Checking for Windows Build Compatibility
Some Docker Desktop versions require specific Windows builds:
# Check Windows build number
[System.Environment]::OSVersion.Version
# Or use
winverDocker Desktop 4.x requires:
- Windows 10 version 2004 (Build 19041) or higher for WSL 2
- Windows 10 version 1607 or higher for Hyper-V backend
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