How to Install Docker Desktop on a Windows Computer — Plus How to Check Whether an Azure Windows 10 VM Supports It

Docker Desktop is one of the fastest ways to get a modern container development environment running on Windows. On a physical Windows 10 or Windows 11 PC, the setup is usually straightforward. On an Azure-hosted Windows 10 VM, though, there is one extra wrinkle: Docker Desktop depends on virtualization features such as WSL 2 or Hyper-V, and those only work if the Azure VM and its underlying configuration support nested virtualization. Docker’s official documentation confirms that Docker Desktop on Windows uses either the WSL 2 backend or the Hyper-V backend.

Why Docker Desktop sometimes works on a laptop but fails on an Azure VM

On a normal laptop or desktop, you mostly need Windows, admin rights, virtualization support, and WSL 2. In Azure, you are already inside a virtual machine, so Docker Desktop may require nested virtualization support from the Azure VM size and platform. Microsoft explicitly notes that not all Azure VM sizes support nested virtualization, and Docker also notes that VM or VDI scenarios depend on the underlying environment supporting WSL 2 or a compatible Windows container backend.

What you need before installing Docker Desktop

Before starting, confirm these basics:

  • A supported 64-bit Windows 10 or Windows 11 environment
  • Administrator access on the machine
  • WSL 2 available or the ability to use Hyper-V
  • Virtualization support enabled and exposed to the guest OS
  • Enough CPU, RAM, and disk for your containers and images

Docker’s current Windows install guide and permissions guide both emphasize admin rights during installation and explain that Docker Desktop on Windows relies on privileged helper components and supported virtualization backends. Microsoft’s WSL documentation also confirms the standard wsl --install flow on supported Windows builds.

Step 1: Check your Windows edition and build

Open PowerShell and run:

winver

Or use:

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

This tells you whether you are on Windows 10 or Windows 11 and which build you are using. If you are using WSL 2, Microsoft’s documentation notes that supported Windows versions and build levels matter.

Step 2: Check whether WSL is already installed

Run:

wsl --status

And then:

wsl -l -v

These commands tell you whether WSL is installed, whether your default distro is present, and whether it is using WSL 1 or WSL 2. Microsoft documents both commands and confirms that new installations using wsl --install default to WSL 2 on supported systems.

Step 3: Check whether the required Windows features are enabled

Run this in PowerShell as Administrator:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform,Microsoft-Hyper-V-All

You can also use DISM:

dism.exe /online /Get-FeatureInfo /FeatureName:Microsoft-Windows-Subsystem-Linux
dism.exe /online /Get-FeatureInfo /FeatureName:VirtualMachinePlatform
dism.exe /online /Get-FeatureInfo /FeatureName:Microsoft-Hyper-V-All

For Docker Desktop with WSL 2, the important features are usually Windows Subsystem for Linux and Virtual Machine Platform. Microsoft’s manual WSL install documentation specifically calls out enabling VirtualMachinePlatform before using WSL 2.

Step 4: Check whether virtualization is available inside Windows

Run:

systeminfo

Look for the Hyper-V Requirements section near the bottom. On many systems, this gives a quick read on whether virtualization support is available to the OS. Another useful check is:

Get-ComputerInfo | Select-Object HyperVisorPresent

If you are on an Azure Windows 10 VM and virtualization is not exposed to the guest, Docker Desktop may fail even if Windows itself looks fine. Nested virtualization is the key concept here. Microsoft’s nested virtualization guidance explains that virtualization extensions must be available to the VM for these scenarios to work.

Step 5: If this is an Azure Windows 10 VM, check whether the VM size supports nested virtualization

This is the part many people miss.

In Azure, not every VM size supports nested virtualization. Microsoft’s documentation and support guidance indicate that nested virtualization is available only on certain VM families and generations.

Ways to check from inside the Azure VM

First, gather the VM size if Azure tools are available:

Invoke-RestMethod -Headers @{Metadata="true"} -Method GET -Uri "http://169.254.169.254/metadata/instance/compute?api-version=2021-02-01" | Select-Object vmSize,name,location,offer,sku

This uses Azure Instance Metadata Service to show the VM size from inside the VM. Once you know the size, compare it with Azure’s documentation for supported VM families and nested virtualization guidance.

You can also check whether Hyper-V components are even installable:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

If Hyper-V features remain unavailable or virtualization requirements are not met, the Azure VM likely is not exposing the required virtualization extensions to the guest. That strongly suggests the chosen VM size or configuration is unsuitable for Docker Desktop. This is consistent with Microsoft’s nested virtualization guidance.

Ways to check from Azure PowerShell

If you manage Azure from your workstation or from the VM and have the Azure PowerShell module installed, run:

Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" | Select-Object Name, Location, HardwareProfile

That gives you the VM size. Microsoft’s Azure docs also show Get-AzVM as a standard way to inspect VM properties.

Practical rule

If your Azure VM size is from a family that does not support nested virtualization, Docker Desktop is the wrong tool for that VM. In that case, use a different approach such as:

  • install Docker Engine directly in a Linux VM
  • use Azure Container Apps, AKS, or another managed container platform
  • move development to a local Windows machine with WSL 2 support

That recommendation follows naturally from Docker’s own VM/VDI guidance and Microsoft’s nested virtualization limitations.

Step 6: Enable WSL 2 on Windows

If your machine supports it, open PowerShell as Administrator and run:

wsl --install

Then reboot.

After reboot, confirm WSL is ready:

wsl --status
wsl -l -v

If needed, set WSL 2 as default:

wsl --set-default-version 2

Microsoft documents this exact flow for current Windows systems.

Step 7: If WSL install fails, enable features manually

Run these commands in PowerShell as Administrator:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Reboot, then run:

wsl --update
wsl --set-default-version 2

Microsoft’s manual WSL installation guidance specifically documents enabling these optional features and then completing WSL setup.

Step 8: Download and install Docker Desktop

Download the Windows installer from Docker’s official site, then run it as Administrator. During installation, keep the WSL 2 based engine option enabled if available. Docker’s WSL backend guide states that after installation you can confirm this in Docker Desktop under Settings > General > Use WSL 2 based engine.

Step 9: Start Docker Desktop and verify it is working

Open Docker Desktop from the Start menu. Then verify from PowerShell:

docker --version
docker version
docker info

Finally, run the classic test container:

docker run hello-world

If that succeeds, Docker Desktop is installed correctly and can pull and run Linux containers. Docker’s install guide uses this same general verification pattern.

Step 10: Check whether Docker is using WSL 2 properly

Run:

wsl -l -v

You should usually see Docker-related WSL distributions after Docker Desktop initializes. In Docker Desktop itself, check:

  • Settings > General → WSL 2 engine enabled
  • Settings > Resources > WSL Integration → your distro enabled

Docker’s WSL backend documentation explains that WSL integration is managed from those settings and that the default WSL distribution can be selected with wsl.exe --set-default.

Common Azure VM checks before blaming Docker

If you are installing on an Azure Windows 10 VM, here are the most useful checks in one place:

1. Check VM size from inside the VM

Invoke-RestMethod -Headers @{Metadata="true"} -Method GET -Uri "http://169.254.169.254/metadata/instance/compute?api-version=2021-02-01" | Select-Object vmSize,name,location

2. Check Windows build

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

3. Check WSL status

wsl --status
wsl -l -v

4. Check optional features

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform,Microsoft-Hyper-V-All

5. Check virtualization visibility

systeminfo
Get-ComputerInfo | Select-Object HyperVisorPresent

6. Check whether Docker Desktop is running

docker version
docker info

These checks help you quickly separate a Windows configuration problem from an Azure VM capability problem. That distinction is especially important in nested virtualization scenarios.

Troubleshooting tips

If Docker Desktop still fails, the issue is usually one of these:

  • virtualization not available to the VM
  • unsupported Azure VM size
  • WSL 2 not installed correctly
  • Hyper-V / Virtual Machine Platform not enabled
  • Docker Desktop installed, but WSL integration not enabled
  • old or restricted corporate image
  • conflict with existing Docker tooling inside a WSL distro

Docker’s WSL guide explicitly warns against mixing Docker Engine installed directly inside WSL with Docker Desktop because that can create conflicts.

Licensing note

Docker’s documentation states that commercial use of Docker Desktop in larger organizations—more than 250 employees or more than $10 million USD in annual revenue—requires a paid subscription. That is worth mentioning in any enterprise rollout or Azure VM standard build.

Final takeaway

Installing Docker Desktop on a Windows PC is usually easy: enable WSL 2, install Docker Desktop, and verify with docker run hello-world. Installing it on an Azure Windows 10 VM is different because success depends not only on Windows configuration, but also on whether the Azure VM size and platform support nested virtualization. If your Azure VM does not expose the required virtualization features, no amount of reinstalling Docker Desktop will fix it. In that case, the smarter move is to change VM size or use a Linux-based Docker host instead.