web-dev-qa-db-fra.com

Docker sur Windows 10 ne peut pas démarrer après la suppression manuelle de MobyLinuxVM dans Hyper-V

Au début, le menu fixe fonctionne bien sous Windows 10 avec la version officielle. 

Ensuite, j'ai supprimé MobyLinuxVM dans Hyper-V pour une raison quelconque. Après cela, le menu fixe ne peut plus fonctionner. 

Ensuite, je désactive la fonctionnalité Hyper-V et désinstalle le menu fixe (l'ordinateur a bien sûr été redémarré). 

Ensuite, je réinstalle le menu fixe et réactive la fonctionnalité Hyper-V. Mais le docker ne peut toujours pas travailler. 

J'ai essayé une solution sur Google mais le problème persiste.
J'ai vérifié l'état de la MobyLinuxVM lors du démarrage du menu fixe et constaté que la MobyLinuxVM n'était jamais créée. 

Est-ce que quelqu'un sait comment résoudre? 

Voici la capture d'écran et les journaux:

 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]
11
Yun

Problème résolu !! J'ai essayé la méthode fournie par VonC, bien que cela ne fonctionne toujours pas, mais j'ai trouvé une chose qui, pendant que j'exécute la commande .\MobyLinux.ps1 -Create, provoque une erreur de création de VNAT. Ensuite, j’ouvre la liste des adaptateurs réseau et constate qu’il existe de nombreux "adaptateurs déconnectés" créés par Hyper-V (pendant ce temps, je m’allume et je rallume plusieurs fois, chaque fois qu’il ne reconnaît pas les anciens quel docker peut). Par conséquent, l'adaptateur dont le menu fixe a été trouvé ne correspond pas à celui trouvé par Hyper-V; l'invite "l'objet existe déjà" et n'en crée pas un autre.

Enfin, nous devons ouvrir le gestionnaire de périphériques et supprimer les adaptateurs inutiles. Le docker a alors démarré!

Enfin, merci beaucoup pour la première réponse de VonC

7
Yun

Ensuite, je réinstalle le menu fixe et réactive la fonctionnalité Hyper-V.

Assurez-vous d’activer d’abord la fonctionnalité Hyper-V (puis redémarrez).

Ensuite, réinstallez Docker pour Windows .
Voir " Ce qu'il faut savoir avant d'installer ":

La version actuelle de Docker pour Windows fonctionne sur Windows 10 Pro, Entreprise et Éducation 64 bits (mise à jour 1511 novembre, version 10586 ou ultérieure).

Le package Hyper-V doit être activé pour que Docker pour Windows fonctionne. Le programme d'installation de Docker pour Windows l'activera pour vous, si nécessaire.

Votre message d'erreur particulier est signalé dans docker/for-win numéro 248 et avant dans numéro 214

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

Comme noté dans ce commentaire et ici , essayez de supprimer le VM enregistré et redémarrez.

vous devriez être dans C:\Program Files\Docker\Docker\resources pour exécuter les commandes.
Alors permettez-moi d'affiner la séquence de commandes que vous pourriez exécuter:

  • quitter l'application
  • Stop-Service com.docker.service
  • cd 'C:\Program Files\Docker\Docker\resources'
  • .\MobyLinux.ps1 -Destroy
  • vérifier que le fichier VHDX (C:\Users\Public\Public Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx) est supprimé
  • .\MobyLinux.ps1 -Create
8
VonC

Il ne prend pas en charge les espaces sur votre chemin de l'unité hyperV.
Vous devez configurer sur votre configuration hyperV un chemin sans espaces.

0
Crystian