Docker Fails to Start on Windows 10: MobyLinuxVM Initialization Error

DevOpsDevOps Tools

YOUR COSMETIC CARE STARTS HERE

Find the Best Cosmetic Hospitals

Trusted • Curated • Easy

Looking for the right place for a cosmetic procedure? Explore top cosmetic hospitals in one place and choose with confidence.

“Small steps lead to big changes — today is a perfect day to begin.”

Explore Cosmetic Hospitals Compare hospitals, services & options quickly.

✓ Shortlist providers • ✓ Review options • ✓ Take the next step with confidence

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 MobyLinuxVM definition.
  • 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-users or Hyper-V Administrators group.
  • 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

  1. Enable Hyper-V via Turn Windows features on or off and reboot.
  2. 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.

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x