Можно ли запустить Docker внутри VMware?

24

Я использую рабочую станцию ​​vmware для своих нужд разработчиков и должен поддерживать разные виртуальные машины для разных сред.

Docker, похоже, позволяет запускать diff-среды в контейнерах, поэтому

  1. Могу ли я запустить на своей виртуальной машине Windows 10 x64 докер и использовать разные образы и контейнеры для разработки, сборки и тестирования своего кода? (Помните, что я запускаю свою среду разработки в VMware Workstation, пока докер использует VirtualBox)

  2. Как отправить / доставить это мое приложение (код + база данных + веб-интерфейс + .....) в производство? Должна ли производственная машина хорошо работать с докером?

Пожалуйста, помогите уточнить.

Обновить

Под VMWare я имею в виду рабочую станцию ​​VMWare pro.

Хамза Ахмед Зия
источник

Ответы:

14

Да , вполне возможно запустить Docker на виртуальной машине. Docker - это легкое решение для виртуализации, оно не виртуализирует оборудование, поэтому на вас не будут влиять проблемы, типичные для вложенных виртуальных машин.

Связывание портов может быть немного сложным, потому что вам нужно каким-то образом подключить виртуальную машину dev-env в VMware с виртуальной машиной Docker в VirtualBox.

Вы также можете столкнуться с проблемами, если хотите открыть папки хоста для службы в контейнере Docker. Файловые системы Windows ограничены по сравнению с Linux с точки зрения детализации разрешений, и некоторым сервисам это не нравится. (эта проблема не зависит от Docker)

В общем, ваше приложение не заблокировано для работы с Docker. Dockerized сервисы взаимодействуют с миром через сеть, ничем не отличается от того, что обычно делают обычные сервисы. Однако приложение, разработанное с учетом Docker (или, в более общем смысле, облачного хранилища), может быть более устойчивым к сбоям и более простым в обслуживании.

gronostaj
источник
6

В этом блоге рассказывается, как именно использовать Docker в Windows с VMWare Workstation. Вы даже можете использовать Windows 7.

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

Сначала установите менеджер пакетов Chocolatey для Windows (это однострочная команда)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

затем установите Docker для использования рабочей станции VMWare

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

Создать виртуальную машину по умолчанию

docker-machine --native-ssh create -d vmwareworkstation default  

Установите переменные среды

docker-machine env | iex

Теперь вы готовы начать.

на паровой тяге
источник
Отлично! Спасибо, что поделились этим. PS: последняя строка для PowerShell, без "| iex", который будет работать в cmd
Дмитрий Гусаров
Шоколадным было новым для меня это был хороший отправной точкой: hanselman.com/blog/...
ccook
1
На всякий случай, если кто-то еще попробовал это, не прочитав ссылку, команда «Создать виртуальный компьютер по умолчанию» должна быть: docker-machine --native-ssh create -d vmwareworkstation default(Примечание отсутствует »-»)
Нил
2
  1. Да, вы можете запустить Docker в Windows. Windows на VMWare также работает. Мы запускаем Docker на серверах Linux на VMWare.
  2. Самым разумным было бы иметь докер на своей рабочей машине, но можно было бы скопировать ваши данные из контейнеров. Я не рекомендую это все же.
    Вы можете использовать docker saveдля сохранения ваших изображений докера в файлы.
    Я думаю, что стоит упомянуть, что не рекомендуется запускать несколько приложений в одном и том же контейнере и не рекомендуется хранить данные внутри ваших контейнеров, для этого следует использовать тома.
Микаэль Кьер
источник
Спасибо за ваш ответ, но, пожалуйста, уточните. Вы сказали, что «Windows на VMWare также работает», но вы имели в виду «Docker на VMWare также работает»?
Хамза Ахмед Зия
@HamzaAhmedZia "VMWare" Что именно? ESXi? Рабочая станция? Будьте конкретны и отредактируйте свой вопрос. Рабочая станция существует только в Linux и Windows.
Ramhound
@ Ramhound Я имею в виду Workstation. Обновленный вопрос
Хамза Ахмед Зия
@HamzaAhmedZia, поэтому в контексте рабочей станции автор этого ответа указывает, что вы можете запустить Docker в виртуальной машине Windows VMWare Workstation.
Ramhound
@Mikael Что вы посоветуете для отправки в производство, поскольку вы говорите, что не рекомендуете копировать данные из контейнеров?
Хамза Ахмед Зия
0

Между докерным хостом (Linux или Windows) есть большая разница:

  • Хост Linux не нужны никакие технологии виртуализации Таким образом , в VMware Workstation, вы можете установить стандартный Linux, затем Docker двигатель и запускать любые контейнеры без проблем
  • У хоста Windows есть другое требование, потому что под капотом он создает виртуальную машину Hyper V Linux (подробности на https://rancher.com/the-similities-and-differences-between-windows-and-linux-containers/ )

Итак, на док-хосте Windows на рабочей станции Vmware (на вашей физической Windows) у вас есть вложенная виртуальная машина HyperV Linux! Это не большая проблема, просто будьте осторожны, чтобы включить вложенную виртуализацию.

Франсуа

Франсуа ЯКОБ
источник
Эта точка зрения о том, что Windows размещает виртуальную машину HyperV, неверна, если Docker для Windows работает в режиме контейнера Windows и используется совместно с LCoW. У него есть другие проблемы, но позиция связанных статей об агностицизме Docker, основанного на хост-ОС, в лучшем случае близорука в зависимости от того, куда Moby Project движется с докером на основе контейнеров Windows на Win 10. Но я просто потратил неделю на то, чтобы обнаружить, что кровоточащий край все еще забирает кровь и не отступает до уровня опасности только переднего края. На данный момент это выглядит как еще шесть месяцев, пока он не будет готов в качестве ежедневного водителя.
Тецуджин но Они
0

Запуск контейнеров Docker вызывает проблемы с привязкой портов ...!

Это хорошая практика для запуска докера внутри виртуальной машины .. Архитектура для вашей справки

Хост ОС -> VirtualMachine -> Гипервизор -> Серверная ОС -> Докер

Это хорошая практика .. :)

Маникандан Рам
источник