Как использовать Vagrant и Docker-for-Windows в системе Hyper-V?

12

Когда-то я использовал VirtualBox (VB) и Vagrant (V) для запуска виртуальных машин. Поскольку я установил docker-for-windows (DfW) и запустил V, VB жалуется на Hyper-V (HV) .

[user@localhost ~]$ vagrant up
Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component
ConsoleWrap, interface IConsole

Хотя эта ссылка указывает, что V поддерживает HV, приведенное выше сообщение об ошибке противоречиво. Почему VB выглядит несовместимым с HV, почему V говорит, что поддерживает HV и как предотвратить отключение HV, чтобы снова использовать V.

| Product    | Version |
|:-----------|--------:|
| Vagrant    |   2.0.1 |
| VirtualBox |   5.2.4 |
| Windows    |      10 | 

обсуждение

Предложение по включению и выключению Hyper-V не является предпочтительным решением, так как отнимает много времени.

Если можно было бы запустить V и DfW в одной системе, заменив VB, это может быть вариантом.

030
источник

Ответы:

9

Подтвержденный этим ответом на SO, ссылающийся на техноло- гию Microsoft после активации Hyper-V, он маскирует инструкции процессора VT-X для ОС поверх него, и окна запускаются как гость.

Для работы Docker для Windows требуется Hyper-V, поэтому отключение его на самом деле не вариант.

Невозможно запустить виртуальный блок поверх Hyper-V, и это вполне нормально, вы не должны запускать гипервизор внутри гипервизора, они будут бороться за организацию доступа к оборудованию.

На мой взгляд, лучшим обходным путем является создание виртуальной машины Hyper-V из vagrant с провайдером Hyper-V вместо виртуальных блочных машин. Таким образом, вы можете создать виртуальную машину или контейнер в одном сеансе.

Примечание: у vagrant уже есть примечание об этом на странице документации поставщика hyper-v (найдено при поиске по ссылке для добавления выше):

Предупреждение . Включение Hyper-V приведет к тому, что VirtualBox, VMware и любые другие технологии виртуализации перестанут работать. Посмотрите этот пост в блоге, чтобы узнать, как создать загрузочную запись для загрузки Windows без включенной Hyper-V, если вам понадобятся другие гипервизоры.

Tensibai
источник
0

Наряду с Vagrant вы можете использовать устаревшую «Docker Toolbox» старой школы вместо «Docker для Windows». Это означает, что Docker будет работать медленно, поскольку он работает на виртуальной машине Linux, я полагаю. https://docs.docker.com/toolbox/toolbox_install_windows/ Кроме этого, да, я перезагружал свой компьютер все, что мне нужно HyperV для Docker, или удаляю его, когда я хочу vagrant.

armyofda12mnkeys
источник