Могу ли я запустить Docker на виртуальной машине?
Я попытался запустить Docker на виртуальной машине.
Host : MacBook
VM : Parallels Windows 7
И возникает ошибка:
![enter image description here]()
Является ли это возможным?
Ответы
Ответ 1
Вы используете Docker Machine в своей виртуальной машине Windows, которая на самом деле собирается создать виртуальную виртуальную машину Linux в виртуальной машине Windows на вашем Mac. Вы можете это сделать, но вам нужно включить вложенную виртуализацию - что я не уверен, что вы можете сделать в Parallels 7.
Вместо этого вы можете запустить Docker Machine на Mac напрямую и использовать Parallels для создания виртуальной машины Linux - что означает, что Docker работает в виртуальной машине Linux на вашем Mac, и вам не нужна вложенная виртуализация.
Или желательно использовать Docker для Mac, если ваша ОС поддерживает его, это новейший продукт и имеет гораздо лучшую интеграцию с хостом, чем Docker Machine.
Ответ 2
Если виртуальная машина является Linux, вы можете сделать это без каких-либо проблем - в Linux Docker, по сути, является хорошо проработанным chroot. Таким образом, докер Linux не является виртуализацией.
В случае с Windows это не так просто. Windows Docker внутренне использует Hyper-V для эмуляции контейнеров. Это означает, что вы можете запустить, только если вы можете использовать вложенную виртуализацию:
- На вашем хост-компьютере работает Windows VM
- Внутри вашей виртуальной машины Windows работает HyperV
- HyperV управляется докером, установленным в вашей виртуальной Windows.
Я попробовал qemu/kvm, virtualbox и vmware player. Я настроил их глубоко и сильно, я взломал их, я сделал все возможное, чтобы сделать. Работал только последний (VMWare).
Существуют значительные затраты на скорость, но это может быть полезно для разработки под Linux, а затем для пробного тестирования конфигураций Windows.
Вам понадобится много барана. По крайней мере, 16G. 32G лучше. Относительная полезная конфигурация будет:
- 32 ГБ физической ОЗУ для физического хоста
- 12 ГБ виртуальной памяти для работающей на ней виртуальной машины Windows
- 8 ГБ виртуальной оперативной памяти внутри виртуальной машины Windows для хоста HyperV Linux.
Иногда это будет немного глючить, но только ваш HyperV выйдет из строя, ваш виртуальный Win или ваш хост-компьютер не будут. Это нормально для тестирования док-контейнера на компьютере с Windows, который вы разработали для Linux. Не создавайте критически важные серверы на этом пути. :-)