Могу ли я запустить 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 для эмуляции контейнеров. Это означает, что вы можете запустить, только если вы можете использовать вложенную виртуализацию:

  1. На вашем хост-компьютере работает Windows VM
  2. Внутри вашей виртуальной машины Windows работает HyperV
  3. HyperV управляется докером, установленным в вашей виртуальной Windows.

Я попробовал qemu/kvm, virtualbox и vmware player. Я настроил их глубоко и сильно, я взломал их, я сделал все возможное, чтобы сделать. Работал только последний (VMWare).

Существуют значительные затраты на скорость, но это может быть полезно для разработки под Linux, а затем для пробного тестирования конфигураций Windows.

Вам понадобится много барана. По крайней мере, 16G. 32G лучше. Относительная полезная конфигурация будет:

  • 32 ГБ физической ОЗУ для физического хоста
  • 12 ГБ виртуальной памяти для работающей на ней виртуальной машины Windows
  • 8 ГБ виртуальной оперативной памяти внутри виртуальной машины Windows для хоста HyperV Linux.

Иногда это будет немного глючить, но только ваш HyperV выйдет из строя, ваш виртуальный Win или ваш хост-компьютер не будут. Это нормально для тестирования док-контейнера на компьютере с Windows, который вы разработали для Linux. Не создавайте критически важные серверы на этом пути. :-)