This issue was originally reported on GitHub and affects Docker for Windows installations on Windows 10 with Hyper-V enabled.
Overview
A common failure mode for Docker for Windows is the inability to start the internal MobyLinuxVM virtual machine that Docker uses to run Linux containers. Even when Hyper-V is enabled and Docker is installed correctly, the daemon can throw a startup exception that leaves Docker in a broken state. This article documents the error, its context, and practical troubleshooting approaches.
Affected Environment
- Operating System: Windows 10 Enterprise 64-bit
- Windows Version: 1511 (OS Build 10586.633)
- Docker edition: Docker for Windows (stable channel)
- Hyper-V: Enabled
Expected Behavior
After installing Docker for Windows and enabling Hyper-V, Docker should start successfully, creating the MobyLinuxVM virtual machine in Hyper-V Manager and making the Docker daemon available for container workloads.
Actual Behavior
Docker fails to start. The system tray icon shows Docker as starting but never reaches a running state. No MobyLinuxVM entry appears in Hyper-V Manager.
Error Message
The following exception is thrown when Docker attempts to start:
Unable to start: The running command stopped because the preference variable
"ErrorActionPreference" or common parameter is set to Stop:
'MobyLinuxVM' failed to start.
'MobyLinuxVM' failed to initialize.
'MobyLinuxVM' failed to start. (Virtual machine ID ACFCAB44-73E3-4CE0-AE3F-F519BC6FF42B)
'MobyLinuxVM' failed to initialize. (Virtual machine ID ACFCAB44-73E3-4CE0-AE3F-F519BC6FF42B)
at Start-MobyLinuxVM, : line 287
at , : line 382
at Docker.Backend.ContainerEngine.Linux.DoStart(Settings settings)
at Docker.Backend.ContainerEngine.Linux.Restart(Settings settings)
at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass8_0.b__0(Object[] parameters)
at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object[] parameters)Code language: PHP (php)
What This Error Means
Docker for Windows on non-WSL2 installations relies on Hyper-V to run a lightweight Linux virtual machine called MobyLinuxVM. This VM hosts the Docker daemon and all Linux containers. When MobyLinuxVM cannot initialize, Docker cannot function at all.
The error is surfaced through PowerShell because Docker’s backend uses PowerShell scripts (MobyLinux.ps1) to manage the VM lifecycle. The ErrorActionPreference message indicates that a non-terminating error was promoted to a terminating one, causing the script to abort.
Common root causes include:
- Hyper-V is enabled but the Virtual Machine Management service (VMMS) is not running.
- A previous Docker installation left behind a corrupt or incomplete
MobyLinuxVMdefinition. - Windows 10 version 1511 is too old for the version of Docker for Windows being installed.
- Insufficient permissions — the current user is not a member of the
docker-usersorHyper-V Administratorsgroup. - Conflicting virtualization software (e.g., VirtualBox, VMware) that conflicts with Hyper-V.
- BIOS-level hardware virtualization (Intel VT-x / AMD-V) not enabled.
Steps to Reproduce
- Enable Hyper-V via Turn Windows features on or off and reboot.
- Install Docker for Windows (stable) and launch it.
Troubleshooting and Workarounds
1. Destroy and Recreate MobyLinuxVM Manually
The original reporter attempted to use the bundled PowerShell script to reset the VM. Run these commands from an elevated PowerShell prompt:
cd 'C:\Program Files\Docker\Docker\resources'
.\MobyLinux.ps1 -Destroy
.\MobyLinux.ps1 -Create
.\MobyLinux.ps1 -StartCode language: JavaScript (javascript)
This sequence removes any stale VM definition and creates a fresh one. Note that in this reported case the VM appeared in Hyper-V Manager after -Create, but the subsequent -Start still failed, suggesting the underlying issue was deeper than a stale VM definition.
2. Verify Hyper-V Services Are Running
Open Services (services.msc) and confirm that the following services are running:
- Hyper-V Virtual Machine Management (VMMS)
- Hyper-V Host Compute Service
If either service is stopped, start it manually and then retry Docker.
3. Check User Group Membership
Ensure your Windows user account belongs to the Hyper-V Administrators group and (on newer Docker versions) the docker-users local group. You can verify this in Computer Management → Local Users and Groups → Groups.
4. Upgrade Windows 10
Windows 10 version 1511 (Build 10586) is a very old release. Docker for Windows has minimum OS version requirements, and running it on an unsupported build can cause subtle Hyper-V API incompatibilities. Upgrading to a supported Windows 10 release is strongly recommended.
5. Verify Hardware Virtualization in BIOS/UEFI
Even with Hyper-V enabled in Windows, the underlying CPU virtualization extensions must be active. Enter your system BIOS/UEFI and confirm that Intel VT-x (or AMD-V on AMD systems) and VT-d / IOMMU are enabled.
6. Uninstall Conflicting Hypervisors
VirtualBox (versions before 6.x) and older VMware Workstation releases are incompatible with Hyper-V because they use their own hypervisor layer. If either is installed, disable or uninstall it and reboot before retrying Docker.
7. Review Docker Diagnostic Logs
Docker for Windows writes diagnostic logs that contain more detail than the UI error message. Access them via:
- Right-click the Docker system tray icon → Diagnose & Feedback
- Or navigate directly to
%LOCALAPPDATA%\Docker\log.txt
Look for lines referencing Hyper-V API errors, access denied messages, or network adapter creation failures, as these often reveal the specific blocker.
Modern Alternative: WSL 2 Backend
If you are on a current version of Windows 10 (build 19041 or later) or Windows 11, Docker Desktop supports the WSL 2 backend, which avoids the Hyper-V VM management layer entirely. Switching to the WSL 2 backend eliminates the MobyLinuxVM class of errors and generally provides better performance and lower resource overhead. This option is configurable in Docker Desktop → Settings → General → Use the WSL 2 based engine.
Summary
The MobyLinuxVM failed to initialize error means Docker’s Hyper-V virtual machine could not be started. The most effective first steps are to verify Hyper-V services are running, check user group membership, and ensure hardware virtualization is enabled in BIOS. On very old Windows 10 builds such as 1511, upgrading Windows itself may be required. For modern systems, migrating to the WSL 2 Docker backend avoids this class of problem entirely.