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. 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
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>
8 Réponses :
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.
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
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,
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.
L'exécution de la commande MOFCOMP et un redémarrage ont résolu ce problème pour moi.
Exécution de cette commande: (Invite de commandes en tant qu'administrateur) MOFCOMP% SYSTEMROOT% \ System32 \ WindowsVirtualization.V2.mof
Ensuite, redémarrez
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"
Pour résoudre le problème, suivez les étapes indiquées dans le document Microsoft ci-dessous
Ensuite, redémarrez votre PC.
Après le redémarrage
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:
J'espère que cela vous aidera!
Veuillez noter que Container
est une fonctionnalité distincte d'Hyper-V.
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.
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
J'espère que cela a été utile pour quelqu'un