4
votes

Docker: Hyper-V n'a pas pu trouver un commutateur virtuel avec le nom «DockerNAT»

J'ai mis à jour mon docker pour l'application de bureau (version 2.0.0.3) sur Windows 10 pro, mais depuis lors, mon docker ne démarre pas et génère l'erreur suivante.

Hyper-V was unable to find a virtual switch with name "DockerNAT".
at New-Switch, <No file>: line 121
at <ScriptBlock>, <No file>: line 411

J'ai suivi les étapes mentionnées dans le lien ( Docker sur Windows 10 ne peut pas démarrer après la suppression manuelle de MobyLinuxVM dans Hyper-V ), mais cela n'a pas résolu le problème. entrez la description de l'image ici J'ai également essayé de désactiver -> redémarrer -> puis d'activer l'option Hyper V et les conteneurs en utilisant "Activer ou désactiver la fonction Windows" présente dans "Panneau de configuration \ Programmes \ Programmes et fonctionnalités"

Mon réseau la connexion contient les informations suivantes entrez la description de l'image ici

Mais je ne parviens toujours pas à démarrer mon application Windows Docker, qui continue de lancer

Hyper-V\Get-VMNetworkAdapter : Hyper-V was unable to find a virtual switch with name "DockerNAT".
At C:\Program Files\Docker\Docker\resources\MobyLinux.ps1:121 char:25
+ ... etAdapter = Hyper-V\Get-VMNetworkAdapter -ManagementOS -SwitchName $S ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (DockerNAT:String) [Get-VMNetworkAdapter], VirtualizationException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.GetVMNetworkAdapter

p>


0 commentaires

8 Réponses :


1
votes

ouvrez le gestionnaire hyper-v et vérifiez dans le "Gestionnaire de commutateurs virtuels" si vous pouvez voir le DockerNAT là-bas ou non, Docker pour Windows a créé ce commutateur quand il démarre avant de créer le mobylinux vm. si votre script PowerShell ne crée pas ce commutateur, essayez de le créer directement là-bas.

entrez la description de l'image ici


0 commentaires

3
votes

J'ai également rencontré ce problème une fois.

J'ai essayé plusieurs solutions de contournement, mais rien n'a fonctionné. Le problème était que MobyLinuxVM ne pouvait pas créer le commutateur NAT Docker, par conséquent le service Docker ne pouvait pas être démarré.

Le fonctionnement solution était de réinitialiser mes paramètres réseau. Je ne me souviens pas si j'ai dû supprimer toutes les entrées liées au réseau dans la gestion de l'ordinateur pour être réinitialisé à partir de zéro.

Important : vous perdrez toutes les entrées liées au réseau définies par l'utilisateur réglages. Essayez-le si tout le reste échoue.

Modifier: Une autre chose que vous pouvez essayer est de redémarrer le service de gestion Hyper-V en exécutant les commandes suivantes dans un shell d'administration: p >

net stop vmms
net start vmms

Trouvé dans github associé problème


5 commentaires

J'ai essayé ce que vous avez suggéré, c'est-à-dire même en supprimant toutes les configurations réseau, en obtenant toujours la même erreur. "Impossible de créer: la commande en cours d'exécution s'est arrêtée car la variable de préférence \ n" ErrorActionPreference "ou le paramètre commun est défini sur Stop: Hyper-V n'a pas pu trouver un commutateur virtuel avec le nom" DockerNAT ". Sur New-Switch, : ligne 121 à , : ligne 411 "


Avez-vous également supprimé les entrées de la carte réseau dans Gestion de l'ordinateur-> Gestionnaire de périphériques-> Cartes réseau?


Non, j'en ai besoin.


@sumitkumar J'ai mis à jour ma réponse, veuillez l'essayer si le problème persiste.


merci @leopal pour la nouvelle approche, mais même cela ne semble pas aider.



0
votes

L'exécution de la commande MOFCOMP et un redémarrage ont résolu ce problème pour moi.

  1. Exécution de cette commande: (Invite de commandes en tant qu'administrateur) MOFCOMP% SYSTEMROOT% \ System32 \ WindowsVirtualization.V2.mof

  2. Ensuite, redémarrez

( https://community.spiceworks.com/how_to/122307-fix-error-managing-hyper-v-server-2012-r2-from-windows-10 )


0 commentaires

1
votes

J'étais confronté au même problème après la mise à jour de la version du docker et j'ai été résolu en procédant comme suit. Veuillez noter que le système d'exploitation suivant est exécuté sur ma machine.

Édition Windows 10 Entreprise

Version 1903

Construction du système d'exploitation 18362.295

1: - Ouvrez "Window Security"

2: - Ouvrez "Contrôle des applications et du navigateur"

3: - Cliquez sur "Paramètres de protection contre les exploits" en bas

4: - Passez à l'onglet "Paramètres du programme"

5: - Localisez "C: \ WINDOWS \ System32 \ vmcompute.exe" dans la liste et développez-la

6: - Cliquez sur "Modifier"

7: - Faites défiler jusqu'à "Code flow guard (CFG)" et décochez "Override system settings"

8: - Démarrez vmcompute à partir de PowerShell "net start vmcompute"


0 commentaires

0
votes

Pour résoudre le problème, suivez les étapes indiquées dans le document Microsoft ci-dessous

https://support.microsoft.com/en-us/help/3101106/you-cannot-create-a-hyper-v-virtual-switch-on-64-bit -versions-de-windo

Ensuite, redémarrez votre PC.

Après le redémarrage

  1. Ouvrir le Gestionnaire Hyper-V
  2. Accéder à Virtual Switch Manager
  3. Créer un nouveau commutateur virtuel interne avec le nom DockerNAT

     entrez la description de l'image ici

  4. Démarrez votre docker


0 commentaires

1
votes

Aucun de ces éléments n'a fonctionné pour moi. J'ai essayé d'innombrables solutions possibles rapportées par d'autres. En fin de compte, ce post plutôt ancien a aidé: https://forums.docker.com/t/latest-failed-docker-update-makes-hyper-v-unable-to-create-virtual-ethernet-switch-0x80041002/44109 < / p>

Donc, pour résoudre le problème:

  1. désinstaller Docker paralysé pour Windows
  2. supprimez les fonctionnalités Hyper-V et Containers, puis redémarrez
  3. ajouter les fonctionnalités Hyper-V et Containers puis redémarrer
  4. réinstallez Docker pour Windows puis démarrez-le

J'espère que cela vous aidera!


1 commentaires

Veuillez noter que Container est une fonctionnalité distincte d'Hyper-V.



0
votes

J'ai eu le même problème sous Windows 10 et après avoir installé "MicrosoftEasyFix20159.mini.diagcab" mon problème a été résolu. Je pense qu'au lieu de créer manuellement un nouveau "commutateur virtuel interne avec le nom DockerNAT", l'installation de ce Microsoft Easy Fix fonctionne.


0 commentaires

0
votes

Mon bureau Docker m'a donné une erreur similaire

C'était exactement ça:

Le commutateur virtuel 'DockerNAT' ne peut pas être supprimé car il est utilisé par l'exécution de machines virtuelles ou assigné à des pools enfants.

Ma solution était

  1. Ouvrir le gestionnaire Hyper-V
  2. Arrêtez la machine par défaut ou comment votre docker-machine est appelé
  3. Essayez ensuite d'ouvrir Docker Desktop

J'espère que cela a été utile pour quelqu'un


0 commentaires