Run Docker Desktop for Windows in a VM or VDI environment
In general, we recommend running Docker Desktop natively on either Mac, Linux, or Windows. However, Docker Desktop for Windows can run inside a virtual desktop provided the virtual desktop is properly configured.
To run Docker Desktop in a virtual desktop environment, it is essential nested virtualization is enabled on the virtual machine that provides the virtual desktop. This is because, under the hood, Docker Desktop is using a Linux VM in which it runs Docker Engine and the containers.
Docker doesn't support running Docker Desktop for Mac inside a VM.
Support for running Docker Desktop on a virtual desktop is available to Docker Business customers, on VMware ESXi or Azure VMs only.
The support available from Docker extends to installing and running Docker Desktop inside the VM, once the nested virtualization is set up correctly. The only hypervisors we have successfully tested are VMware ESXi and Azure, and there is no support for other VMs. For more information on Docker Desktop support, see Get support.
For troubleshooting problems and intermittent failures that are outside of Docker's control, you should contact your hypervisor vendor. Each hypervisor vendor offers different levels of support. For example, Microsoft supports running nested Hyper-V both on-prem and on Azure, with some version constraints. This may not be the case for VMWare ESXi.
You must turn on nested virtualization before you install Docker Desktop on a virtual machine.
Nested virtualization of other hypervisors like Hyper-V inside a vSphere VM is not a supported scenarioopen_in_new. However, running Hyper-V VM in a VMware ESXi VM is technically possible and, depending on the version, ESXi includes hardware-assisted virtualization as a supported feature. For internal testing, we used a VM that had 1 CPU with 4 cores and 12GB of memory.
For steps on how to expose hardware-assisted virtualization to the guest OS, see VMware's documentationopen_in_new.
Nested virtualization is supported by Microsoft for running Hyper-V inside an Azure VM.
For Azure virtual machines, check that the VM size chosen supports nested virtualizationopen_in_new. Microsoft provides a helpful list on Azure VM sizesopen_in_new and highlights the sizes that currently support nested virtualization. For internal testing, we used D4s_v5 machines. We recommend this specification or above for optimal performance of Docker Desktop.