Чи можливо, щоб докер працював всередині vmware?


25

Я запускаю робочу станцію vmware для потреб своїх розробників і мушу підтримувати різні VM для різних середовищ.

Отже, Docker дозволяє використовувати різні середовища в контейнерах

  1. Чи можу я запускати докер і використовувати різні зображення та контейнери для розробки, побудови та тестування свого коду всередині мого Windows 10 x64 VM? (Пам'ятайте, що я запускаю розробку на робочій станції VMware, поки докер використовує VirtualBox)

  2. Як я можу доставити / взяти цю програму (код + база даних + веб-api + .....) до виробництва? Чи потрібно виробничій машині добре запускати докер?

Будь ласка, допоможіть уточнити.

Оновлення

Під VMWare я маю на увазі робочу станцію VMWare pro.

Відповіді:


15

Так , цілком можливо запустити Докера в VM. Docker - це легке рішення щодо віртуалізації, воно не віртуалізує апаратне забезпечення, тому на вас не вплинуть проблеми, характерні для вкладених віртуальних машин.

Прив’язка портів може бути дещо хитрою, тому що вам доведеться якось підключити свій VM dev-env у VMware з Docker VM у VirtualBox.

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

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


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  

Створіть типовий vm

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

Встановіть змінні середовища

docker-machine env | iex

Тепер ви готові розпочати роботу.


Відмінно! Дякуємо, що поділилися цим. PS: Останній рядок призначений для PowerShell, без "| iex", який би працював у cmd
Дмитро Гусаров

Шоколаді був для мене новим, це було чудовим початком: hanselman.com/blog/…
ccook

1
На всякий випадок, якщо хтось інший спробував це, не читаючи посилання, командою "Створити типовий vm" має бути: docker-machine --native-ssh create -d vmwareworkstation default(Примітка відсутня "-")
Ніл

2
  1. Так, ви можете запустити докер в Windows. Windows на VMWare також працює. Ми запускаємо докер на серверах Linux на VMWare.
  2. Найрозумнішим було б мати докер на вашій виробничій машині, але можна було б скопіювати свої дані з контейнерів. Я не рекомендую цього.
    Ви можете використовувати docker saveдля збереження зображень докера у файлах.
    Я думаю, що варто згадати, що не рекомендується запускати кілька додатків всередині одного контейнера і не рекомендується зберігати дані всередині контейнерів, для цього слід використовувати томи.

Дякуємо за вашу відповідь, але, будь ласка, поясніть. Ви сказали, що "Windows на VMWare також працює", але ви мали на увазі "Docker у VMWare також працює"?
Хамза Ахмед Зія

@HamzaAhmedZia "VMWare" Що саме? ESXi? Робоча станція? Будьте конкретні та відредагуйте своє запитання. Робоча станція існує лише в Linux та Windows.
Рамхаунд

@Ramhound Я маю на увазі Workstation. Оновлено питання
Хамза Ахмед Зія

@HamzaAhmedZia, тому в контексті Workstation автор цієї відповіді вказує, що ви можете запустити Docker у вікні Windows VMWare Workstation VM.
Рамхаунд

@Mikael Ваша рекомендація щодо доставки продукції, оскільки ви говорите, що не рекомендуєте копіювати дані з контейнерів?
Hamza Ahmed Zia

0

Існує велика різниця між докерним хостом (Linux або Windows):

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

Отже, на хості докера Windows на робочій станції Vmware (на вашій фізичній Windows) у вас є вкладена програма HyperV Linux VM! Це не велика проблема, просто будьте обережні, щоб увімкнути вкладену віртуалізацію.

Франсуа


Цей пункт про Windows, що розміщує VM HyperV, є невірним, якщо запускати Docker для Windows у режимі Windows Container та використовувати LCoW одночасно. У нього є інші проблеми, але пов'язані статті позиції щодо агностицизму Docker на базі ОС хостингу в кращому випадку базуються на тому, куди Moby Project прямує з контейнером-докером Windows на Win 10. Але я просто занурився на тиждень, щоб виявити, що кров, що кровоточить, все ще тягне кров, і не відступає до рівня небезпеки лише переднього краю. На даний момент це виглядає як ще півроку, поки він не буде готовий як щоденний водій.
Tetsujin no Oni

0

Запуск контейнерів Docker спричиняє проблеми зв’язування портів!

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

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

Це гарна практика .. :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.