Docker: Hyper-V не удалось найти виртуальный коммутатор с именем DockerNAT.

Я обновил свой докер для настольного приложения (версия 2.0.0.3) в Windows 10 pro. Но с тех пор мой докер не запускается и выдает следующую ошибку.

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

Я выполнил шаги, указанные в ссылке (Docker в Windows 10 не запускается после удаления MobyLinuxVM в Hyper-V вручную), но это не решило проблему. введите описание изображения здесь Я также попытался отключить --> перезапуск -->, а затем включить параметр Hyper V и контейнеры, используя «Включить или отключить функцию Windows», присутствующую в «Панель управления\Программы\Программы». и особенности"

Мое сетевое соединение имеет следующую информацию: введите здесь описание изображения

Но все же я не могу запустить приложение Windows Docker, которое продолжает бросать

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

person sumit kumar    schedule 19.02.2019    source источник


Ответы (8)


Я тоже однажды столкнулся с этой проблемой.

Я пробовал несколько обходных путей, но ничего не помогло. Проблема заключалась в том, что MobyLinuxVM не могла создать коммутатор Docker NAT, в результате чего служба Docker не могла быть запущена.

Рабочее решение должен был сбросить настройки сети. Я не могу вспомнить, приходилось ли мне удалять все записи, связанные с сетью, в разделе «Управление компьютером», чтобы выполнить повторную инициализацию с нуля.

Важно: вы потеряете все пользовательские сетевые настройки. Попробуйте, если ничего не помогает.

Изменить. Вы также можете попробовать перезапустить службу управления Hyper-V, выполнив следующие команды в административной оболочке:

net stop vmms
net start vmms

Найдено в связанной ошибке github

person leopal    schedule 19.02.2019
comment
Пробовал то, что вы предложили, то есть даже удалил все сетевые конфигурации, все равно получая ту же ошибку. Невозможно создать: работающая команда остановлена, поскольку для переменной предпочтения \n ErrorActionPreference или общего параметра установлено значение Stop: Hyper-V не удалось найти виртуальный коммутатор с именем DockerNAT. в New-Switch, ‹Нет файла›: строка 121 в ‹ScriptBlock›, ‹Нет файла›: строка 411 - person sumit kumar; 19.02.2019
comment
Вы также удалили записи сетевого адаптера в Управление компьютером->Диспетчер устройств->Сетевые адаптеры? - person leopal; 19.02.2019
comment
Нет, нужно ли. - person sumit kumar; 20.02.2019
comment
@sumitkumar Я обновил свой ответ, попробуйте, если проблема все еще существует. - person leopal; 02.04.2019
comment
спасибо @leopal за новый подход, но даже это не помогает. - person sumit kumar; 22.05.2019

откройте диспетчер Hyper-V и проверьте в «Диспетчере виртуальных коммутаторов», видите ли вы там DockerNAT или нет, Docker для Windows создал этот коммутатор при запуске перед созданием мобилинукс вм. если ваш сценарий powershell не создает этот переключатель, попробуйте создать его прямо там.

введите здесь описание изображения

person Nadeem Hussain    schedule 19.02.2019

Я столкнулся с той же проблемой после обновления версии докера и решил ее, выполнив следующие шаги. Обратите внимание, что на моей машине работает следующая ОС.

Редакция Windows 10 Корпоративная

Версия 1903 г.

Сборка ОС 18362.295

1:- Откройте «Безопасность окна»

2: - Откройте «Управление приложением и браузером»

3: - Нажмите «Настройки защиты от эксплойтов» внизу.

4:- Перейдите на вкладку «Настройки программы».

5: Найдите в списке «C:\WINDOWS\System32\vmcompute.exe» и разверните его.

6:- Нажмите «Изменить»

7: - Прокрутите вниз до «Защита потока кода (CFG)» и снимите флажок «Переопределить системные настройки».

8: - Запустите vmcompute из powershell "net start vmcompute"

person Waqas Ahmed    schedule 08.09.2019

Ни один из них не работал для меня. Я пробовал бесчисленное количество возможных решений, о которых сообщают другие. В конце концов, помог этот довольно старый пост: https://forums.docker.com/t/latest-failed-docker-update-makes-hyper-v-unable-to-create-virtual-ethernet-switch-0x80041002/44109

Итак, чтобы решить проблему:

  1. удалить поврежденный Docker для Windows
  2. удалите функции Hyper-V и Containers, затем перезагрузите компьютер.
  3. добавьте функции Hyper-V и Containers обратно, затем перезагрузите компьютер
  4. переустановите Docker для Windows, затем запустите его

Надеюсь это поможет!

person Adam    schedule 19.12.2019
comment
Обратите внимание, что Container — это функция, отдельная от Hyper-V. - person SMUsamaShah; 24.01.2020

Выполнение команды MOFCOMP и перезагрузка устранили эту проблему для меня.

  1. Выполнение этой команды: (Командная строка от имени администратора) MOFCOMP %SYSTEMROOT%\System32\WindowsVirtualization.V2.mof

  2. Затем перезапустите

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

person selins sofa    schedule 30.05.2019

Чтобы решить проблему, выполните действия, описанные в документе Microsoft ниже.

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

Затем перезагрузите компьютер.

После перезапуска

  1. Откройте диспетчер Hyper-V
  2. Перейти к диспетчеру виртуальных коммутаторов
  3. Создайте новый внутренний виртуальный коммутатор с именем DockerNAT.

    введите здесь описание изображения

  4. Запустите свой докер

person AliMusa    schedule 04.10.2019

У меня была такая же проблема в Windows 10, и после установки «MicrosoftEasyFix20159.mini.diagcab» моя проблема была решена. Я думаю, что вместо того, чтобы вручную создавать новый «Внутренний виртуальный коммутатор с именем DockerNAT», установка этого Microsoft Easy Fix работает.

person Amirhossein Farmad    schedule 25.01.2020

Мой рабочий стол Docker дал мне аналогичную ошибку

Было именно так:

Виртуальный коммутатор DockerNAT нельзя удалить, так как он используется запущенными виртуальными машинами или назначен дочерним пулам.

Мое решение было

  1. Откройте диспетчер Hyper-V
  2. Завершите работу машины по умолчанию или как называется ваша докер-машина
  3. Затем попробуйте открыть Docker Desktop.

Я надеюсь, что это было полезно для кого-то

person Ing. Fhillip G. Castillo    schedule 29.07.2020