Ошибка Docker для Windows: «В BIOS должна быть включена аппаратная виртуализация и защита выполнения данных»


151

Я установил Docker, и я получаю эту ошибку при запуске графического интерфейса:

Аппаратная виртуализация и защита выполнения данных должны быть включены в BIOS

Похоже на ошибку, поскольку Docker работает как брелок из командной строки, но мне интересно, есть ли у кого-нибудь подсказка о том, почему это происходит?

Прежде чем вы спросите, да, я включил виртуализацию в BIOS, и утилита идентификации процессоров Intel подтверждает, что она активирована. Docker, docker-machine и docker-compose все работают из командной строки, Virtualbox работает, работает Docker из виртуальной машины Debian или Ubuntu.

Есть только эта странная проблема с GUI.

Мои характеристики:

  • Windows 10 Pro x64 Anniversary Edition
  • Intel Core i5-6300HQ @ 2,30 ГГц

Ответы:


340

Если описанные функции включены, проблема в том, что Hyper-V отключен или агент Hypervisor не запущен

РЕШЕНИЕ A (если Hyper-V полностью отключен или не установлен)

  1. Откройте PowerShell от имени администратора и

  2. Включить Hyper-V с

    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

РЕШЕНИЕ B (если функция Hyper-V уже включена, но не работает)

Включить гипервизор с

bcdedit /set hypervisorlaunchtype auto

Теперь перезагрузите систему и попробуйте снова.

РЕШЕНИЕ С

Если проблема сохраняется, возможно, Hyper-V в вашей системе поврежден, поэтому

  1. Зайдите в Панель управления -> [Программы] -> [Возможности Windows] и полностью снимите все компоненты, связанные с Hyper-V. Перезагрузите систему.

  2. Снова включите Hyper-V. Начать сначала.

ПРИМЕЧАНИЕ 1 :

Hyper-V требует аппаратной виртуализации в качестве предварительного условия. Убедитесь, что ваш компьютер поддерживает его, если да и все еще не будет работать, есть вероятность того, что ваш BIOS не настроен правильно, и эта функция отключена. В этом случае проверьте, включите его и попробуйте снова. Функции виртуализации могут быть представлены под разными именами в зависимости от используемой платформы (например, если вы не видите опции, которая явно использует метку виртуализации, в AMD вы должны проверить состояние функции SVM , в Intel - состояние функции VT-x ).

ЗАМЕТКА 2:

Hyper-V может быть установлен только с некоторой версией, например:

Windows 10 Enterprise; Windows 10 Professional; Windows 10 Образование.

Hyper-V не может быть установлен на более дешевые или мобильные версии Windows, например:

Windows 10 Home; Windows 10 Mobile; Windows 10 Mobile Enterprise.


3
@Julien попытайтесь удалить и переустановить Hyper-V, см. Правку
— Silverstorm

5
В случае, если у кого-то еще есть подобная проблема, я недавно установил Bash на Ubuntu в Windows (которая использует Hyper-V). После того, как я удалил его, а затем следовал инструкциям в этом ответе, Docker работал на меня!
— Кайл Чаллис

9
Я использую Windows 10 в Bootcamp на MacBook Pro. У меня такая же проблема. Сначала я попробовал, dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /Allно, похоже, не решил, поэтому я попробовал, bcdedit /set hypervisorlaunchtype autoи теперь Docker работает за меня.
— Джонни Ошика

1
Это не было проблемой в моем случае, это был факт, что виртуализация была отключена в BIOS. Мне пришлось включить функцию виртуализации на вкладке «Безопасность» в BIOS, что впоследствии заставило докер работать сразу.
— shahar_m

5
Решение B сработало для меня после обновления / переключения моего SSD через Samsung SSD Migration Tool.
— выходит

19

Ниже рабочее решение для меня, пожалуйста, следуйте этим шагам

  1. Откройте PowerShell от имени администратора или CMD от имени администратора

  2. Запустите эту команду в PowerShell-> bcdedit /set hypervisorlaunchtype auto

  3. Теперь перезагрузите систему и попробуйте снова.

веселит.


4
Работал у меня, не удаляя Intel HAXM, но теперь vmware больше не работает :(
— realtebo

11

Я удалил Intel HAXM и VirtualBox, теперь Docker работает


12
Я установил HAXM для разработки Android и должен был отключить HyperV. Удаление его восстановил Docker для Windows. Теперь, если кто-нибудь может сказать мне, как заставить эмулятор Android и Docker сосуществовать?
— Дитер Менн


3

Откройте диспетчер задач и нажмите на вкладку производительности. Если виртуализация отключена, вам необходимо следовать приведенным ниже инструкциям, чтобы включить ее: https://blogs.technet.microsoft.com/canitpro/2015/09/08/step-by-step-enabling-hyper-v-for- использовать-на-Windows-10 /



1

Можете ли вы попробовать включить Hyper-V вручную, а также создать и запустить виртуальную машину Hyper-V вручную? Подробности:


3
Для меня это не сработало, даже когда Hyper-V был включен и настроен BIOS; Я все еще получал эту ошибку. Отключение Hyper-V +, перезапуск Windows и его повторное включение решило проблему для меня.
— Тадей,

1

В моем случае мне пришлось удалить Hyper-V, перезагрузить компьютер и снова запустить Docker.


1

Попробуйте это в PowerShell (администратор включен):

Enable-WindowsOptionalFeature –Online -FeatureName Microsoft-Hyper-V –All -NoRestart

Это установит HyperVisor без инструментов управления, и после этого вы сможете запустить Docker.


1

Я попробовал много предложений выше, но докер продолжает жаловаться на аппаратную ошибку виртуализации. Виртуализация включена в BIOS, а также Hyper-V установлен и включен. После нескольких попыток и ошибок я в конечном итоге загрузил инструмент coreinfo и обнаружил, что Hypervisor фактически не был включен. Используя ISE (64 бита) в качестве администратора и запустите команду из вышеупомянутого решения B, и это успешно активирует гипервизор (снова проверяется через coreinfo -v). После перезапуска Docker теперь успешно работает.


1

Попробуйте эти шаги

  1. Запустите эту команду в powershell ---> bcdedit / set hypervisorlaunchtype auto
  2. Перезагрузите компьютер
  3. Теперь попробуйте docker --version в строке cmd


0

Я также использую бродягу. Похоже, я могу использовать только 1 вещь одновременно. Удаление vagrant / virtualBox позволило мне запустить Docker и наоборот



0

@Silverstorm

Я установил Hyperv и включил виртуализацию в моем BIOS.

Но РЕШЕНИЕ А не сработало для меня.

Однако РЕШЕНИЕ В работало как шарм.

РЕШЕНИЕ B (если функция Hyper-V уже включена, но не работает)

Включить гипервизор с

bcdedit / set hypervisorlaunchtype auto Теперь перезапустите систему и попробуйте снова.


0

Помимо первоначального ответа, я сделал следующее:

  • Отключить Hyper-V в Windows
  • Включение и выключение виртуализации в BIOS
  • Войдите в Windows, включили Hyper-V. Мне сказали, что есть обновления для Hyper-V, и я сделал обновление. Перезапустите, когда будет предложено.
  • Это сработало!

0

Если все в порядке с опцией BIOS, я просто принудительно отключил и включил все функции HyperV, и это решило мою проблему --cmd Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All --restart Enable-WindowsOptionalFeature -Online -FeatureName Microsoft- Hyper-V - все


0

В моем случае мне пришлось включить виртуализацию в настройках BIOS.

  1. Перезагрузите компьютер
  2. Находясь на экране «перезагрузки», нажмите любую из этих клавиш и введите настройки BIOS в Windows: esc, f1, f2, f3, f4, f8 или delete.
  3. Для систем на базе Intel:
    • нажмите f7 (расширенный режим)
    • перейти на продвинутый
    • конфигурация cpa
    • включить виртуализацию

И после всех вышеперечисленных шагов, это наконец работает :-)


0

В моем случае, хотя я использовал все решения, упомянутые выше, но у меня ничего не получалось. Поэтому я решил удалить докер и установить его снова.

Сейчас в процессе, я заметил, что я не проверял Use Windows containers instead of Linux containers (this can be changed after installation)мою предыдущую установку, и именно поэтому я получил проблему выше, и решения все еще не решили ее. Поэтому убедитесь, что вы проверили его перед запуском док-станции или удалите его и установите снова, установив этот параметр.

Процесс установки докера

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.