Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker on windows 10 can't startup after deleting MobyLinuxVM in Hyper-V manually

At first the docker work well on my Windows 10 with official version.

Then I deleted the MobyLinuxVM in Hyper-V for some reason. After that the docker can't work.

Then I turn off the feature of Hyper-V and uninstall docker(of course the computer was restarted).

Then I reinstall the docker and turn on the feature of Hyper-V again. But the docker still can't work.

I've tried some solution on the google but the problem still remains.
I have checked the MobyLinuxVM's status during the startup of the docker and found the MobyLinuxVM is never created.

Can someone knows how to solve?

Here is the screen shot and logs:

https://i.stack.imgur.com/8GbLw.png

[Version: 1.13.1 (10072)
Channel: Stable
Sha1: 94675c5a765e2c51fba6c10b87e0a1a4ed3dde51
Started on: 2017/02/23 09:35:27.478
Resources: C:\Program Files\Docker\Docker\Resources
OS: Windows 10 Pro
Edition: Professional
Id: 1511
Build: 10586
BuildLabName: 10586.672.amd64fre.th2_release_sec.161024-1825
File: C:\Users\212599222\AppData\Local\Docker\log.txt
CommandLine: "C:\Program Files\Docker\Docker\Docker for Windows.exe" 
You can send feedback, including this log file, at https://github.com/docker/for-win/issues
\[09:35:27.603\]\[GUI            \]\[Info   \] Starting...
\[09:35:28.290\]\[Tracking       \]\[Info   \] Crash report and usage statistics are enabled
\[09:35:28.306\]\[SegmentApi     \]\[Info   \] Usage statistic: appLaunched
\[09:35:28.625\]\[SegmentApi     \]\[Error  \] Failed to track event appLaunched: An error occurred while sending the request.
\[09:35:28.625\]\[NamedPipeClient\]\[Info   \] Sending Version()...
\[09:35:28.641\]\[NamedPipeClient\]\[Info   \] Received response for Version
\[09:35:28.641\]\[SegmentApi     \]\[Info   \] Usage statistic: heartbeat
\[09:35:28.641\]\[SegmentApi     \]\[Error  \] Failed to track event heartbeat: An error occurred while sending the request.
\[09:34:34.255\]\[BackendServer  \]\[Info   \] Started
\[09:35:28.641\]\[NamedPipeServer\]\[Info   \] Version()
\[09:35:28.641\]\[NamedPipeServer\]\[Info   \] Version done in 00:00:00.
\[09:35:28.841\]\[Updater        \]\[Info   \] Checking for updates on channel Stable...
\[09:35:28.841\]\[NamedPipeClient\]\[Info   \] Sending Start(Docker.Core.Settings)...
\[09:35:28.858\]\[NamedPipeServer\]\[Info   \] Start(Docker.Core.Settings)
\[09:35:28.863\]\[UpdateFeedDownloader\]\[Error  \] The remote name could not be resolved: 'download.docker.com'
\[09:35:28.863\]\[Updater        \]\[Info   \] No update available
\[09:35:28.862\]\[PowerMode      \]\[Info   \] Stop
\[09:35:28.863\]\[HyperV         \]\[Info   \] Stop
\[09:35:28.863\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:35:28.863\]\[PowerShell     \]\[Info   \] Creating a Runspace Pool...
\[09:35:29.909\]\[PowerShell     \]\[Info   \] Runspace Pool created (Min=1, Max=2)
\[09:35:29.969\]\[HyperV         \]\[Info   \] Script started at 09:35:29.964
\[09:35:33.783\]\[HyperV         \]\[Info   \] Module loaded at 09:35:33.783
\[09:35:33.983\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:35:33.983\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:05.1195593 to run
\[09:35:33.983\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:35:33.983\]\[PowerShell     \]\[Info   \] Run script...
\[09:35:33.999\]\[Moby           \]\[Info   \] Stop
\[09:35:34.014\]\[HyperVGuids    \]\[Info   \] Installing GUIDs...
\[09:35:34.014\]\[PowerMode      \]\[Info   \] Start
\[09:35:34.014\]\[HyperV         \]\[Info   \] Create
\[09:35:34.014\]\[PowerShell     \]\[Info   \] Run script with parameters: -Create True -VhdPathOverride  -SwitchSubnetAddress 10.0.75.0 -SwitchSubnetMaskSize 24 -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso...
\[09:35:34.014\]\[HyperVGuids    \]\[Info   \] GUIDs installed
\[09:35:34.033\]\[HyperV         \]\[Info   \] Script started at 09:35:34.033
\[09:35:34.036\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:35:34.115\]\[HyperV         \]\[Info   \] Module loaded at 09:35:34.115
\[09:35:34.315\]\[HyperV         \]\[Info   \] Enabled workaround for Build 10586 VMSwitch issue
\[09:35:34.518\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:35:34.518\]\[Firewall       \]\[Info   \] Opening ports for C:\Program Files\Docker\Docker\Resources\com.docker.proxy.exe...
\[09:35:35.451\]\[Firewall       \]\[Info   \] Opening ports for SMB...
\[09:35:36.358\]\[Firewall       \]\[Info   \] Ports are opened
\[09:36:31.192\]\[HyperV         \]\[Info   \] Creating Switch: DockerNAT...
\[09:37:26.994\]\[HyperV         \]\[Info   \] Switch created.
\[09:37:28.917\]\[Linux          \]\[Error  \] Failed to start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.

. Let's retry
\[09:37:28.917\]\[PowerShell     \]\[Info   \] Run script...
\[09:37:42.595\]\[HyperV         \]\[Info   \] Hyper-V is running
\[09:37:42.595\]\[PowerMode      \]\[Info   \] Stop
\[09:37:42.595\]\[HyperV         \]\[Info   \] Stop
\[09:37:42.596\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:37:42.602\]\[HyperV         \]\[Info   \] Script started at 09:37:42.602
\[09:37:42.707\]\[HyperV         \]\[Info   \] Module loaded at 09:37:42.707
\[09:37:42.728\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:37:42.728\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:00.1332364 to run
\[09:37:42.728\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:37:42.728\]\[PowerShell     \]\[Info   \] Run script...
\[09:37:42.744\]\[Moby           \]\[Info   \] Stop
\[09:37:42.752\]\[HyperV         \]\[Info   \] Destroy
\[09:37:42.753\]\[PowerShell     \]\[Info   \] Run script with parameters: -Destroy True -KeepVolume True...
\[09:37:42.761\]\[HyperV         \]\[Info   \] Script started at 09:37:42.761
\[09:37:42.850\]\[HyperV         \]\[Info   \] Module loaded at 09:37:42.850
\[09:37:42.864\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:37:42.865\]\[HyperV         \]\[Info   \] Destroying Switch DockerNAT...
\[09:38:02.148\]\[HyperV         \]\[Info   \] Removing VM MobyLinuxVM...
\[09:38:02.163\]\[HyperV         \]\[Debug  \] \[destroy\] took 00:00:19.4109973 to run
\[09:38:02.163\]\[Firewall       \]\[Info   \] Closing ports...
\[09:38:02.163\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:38:02.335\]\[Firewall       \]\[Info   \] Removing DockerProxy...
\[09:38:02.512\]\[Firewall       \]\[Info   \] Removed DockerProxy.
\[09:38:02.694\]\[Firewall       \]\[Info   \] Removing DockerSmbMount...
\[09:38:02.889\]\[Firewall       \]\[Info   \] Removed DockerSmbMount.
\[09:38:03.050\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:38:03.050\]\[Firewall       \]\[Info   \] Ports are closed
\[09:38:03.051\]\[HyperVGuids    \]\[Info   \] Removing GUIDs...
\[09:38:03.056\]\[HyperVGuids    \]\[Info   \] GUIDs removed
\[09:38:03.057\]\[HyperV         \]\[Info   \] Create
\[09:38:03.057\]\[PowerShell     \]\[Info   \] Run script with parameters: -Create True -VhdPathOverride  -SwitchSubnetAddress 10.0.75.0 -SwitchSubnetMaskSize 24 -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso...
\[09:38:03.063\]\[HyperV         \]\[Info   \] Script started at 09:38:03.063
\[09:38:03.122\]\[HyperV         \]\[Info   \] Module loaded at 09:38:03.122
\[09:38:03.178\]\[HyperV         \]\[Info   \] Enabled workaround for Build 10586 VMSwitch issue
\[09:38:13.824\]\[HyperV         \]\[Info   \] Creating Switch: DockerNAT...
\[09:38:28.719\]\[HyperV         \]\[Info   \] Switch created.
\[09:38:29.134\]\[PowerMode      \]\[Info   \] Stop
\[09:38:29.134\]\[HyperV         \]\[Info   \] Stop
\[09:38:29.135\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:38:29.142\]\[HyperV         \]\[Info   \] Script started at 09:38:29.141
\[09:38:29.223\]\[HyperV         \]\[Info   \] Module loaded at 09:38:29.223
\[09:38:29.236\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:38:29.237\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:00.1021625 to run
\[09:38:29.237\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:38:29.237\]\[PowerShell     \]\[Info   \] Run script...
\[09:38:29.247\]\[Moby           \]\[Info   \] Stop
\[09:38:29.253\]\[HyperV         \]\[Info   \] Destroy
\[09:38:29.254\]\[PowerShell     \]\[Info   \] Run script with parameters: -Destroy True -KeepVolume True...
\[09:38:29.262\]\[HyperV         \]\[Info   \] Script started at 09:38:29.261
\[09:38:29.335\]\[HyperV         \]\[Info   \] Module loaded at 09:38:29.335
\[09:38:29.347\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:38:29.348\]\[HyperV         \]\[Info   \] Destroying Switch DockerNAT...
\[09:38:38.264\]\[HyperV         \]\[Info   \] Removing VM MobyLinuxVM...
\[09:38:38.276\]\[HyperV         \]\[Debug  \] \[destroy\] took 00:00:09.0233008 to run
\[09:38:38.276\]\[Firewall       \]\[Info   \] Closing ports...
\[09:38:38.276\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:38:38.488\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:38:38.488\]\[Firewall       \]\[Info   \] Ports are closed
\[09:38:38.488\]\[HyperVGuids    \]\[Info   \] Removing GUIDs...
\[09:38:38.488\]\[HyperVGuids    \]\[Info   \] GUIDs removed
\[09:38:38.493\]\[NamedPipeServer\]\[Error  \] Unable to execute Start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.

    at Docker.Backend.HyperV.RunScript(String action, Dictionary`2 parameters)
   at Docker.Backend.ContainerEngine.Linux.Start(Settings settings)
   at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass8_0.<Register>b__0(Object\[\] parameters)
   at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object\[\] parameters)
\[09:38:38.565\]\[NamedPipeClient\]\[Error  \] Unable to send Start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.


\[09:38:38.567\]\[Notifications  \]\[Error  \] Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists. 


\[09:39:59.534\]\[SegmentApi     \]\[Info   \] Usage statistic: actionMenuSettings
\[09:40:07.295\]\[ErrorReportWindow\]\[Info   \] Open logs][1]
like image 695
Yun Avatar asked Feb 28 '17 04:02

Yun


People also ask

Can Docker work without Hyper-V?

Docker Desktop on Windows 10 supports two backends: HyperV and WSL2. WSL2 in turn also uses Hyper-V — so without having Hyper-V enabled Docker Desktop fails to start and can't be used.

Does Docker work with Hyper-V?

🔗 Docker Desktop uses the Windows Hyper-V features. While older Windows versions have Hyper-V, their Hyper-V implementations lack features critical for Docker Desktop to work.


2 Answers

Then I reinstall the docker and turn on the feature of Hyper-V again.

Make sure to turn on the feature of Hyper-V first (and reboot)

Then reinstall Docker for Windows.
See "What to know before you install":

The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later).

The Hyper-V package must be enabled for Docker for Windows to work. The Docker for Windows installer will enable it for you, if needed.

Your particular error message is reported in docker/for-win issue 248 and before that in issue 214

Unable to create: 
The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 
The object already exists.

As noted in this comment and here, try and delete the saved VM and restart.

you should be in C:\Program Files\Docker\Docker\resources to run the commands.
So let me refine the sequence of commands that you could run:

  • exit the application
  • Stop-Service com.docker.service
  • cd 'C:\Program Files\Docker\Docker\resources'
  • .\MobyLinux.ps1 -Destroy
  • check that the VHDX file (C:\Users\Public\Public Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx) is removed
  • .\MobyLinux.ps1 -Create
like image 141
VonC Avatar answered Oct 20 '22 11:10

VonC


Problem solved!! I tried the method which VonC provided, though still can't work, but I found one thing that while I run the command .\MobyLinux.ps1 -Create , it prompts that the VNAT creation error. Then I open the network adapter list, found that there are many "disconnected adapter" which is created by Hyper-V(During these time, I've turn off and turn on several times, each time it won't recognize the older adapters which docker can). So the adapter which docker found doesn't match which the Hyper-V found, and will prompt "object already exists" and won't create new one.

At last, what we need to do is to open the device manager and delete the unnecessary adapters -- then the docker successfully started!

Finally, great thank for the first answer by VonC

like image 8
Yun Avatar answered Oct 20 '22 12:10

Yun