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

Вопрос или проблема

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

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

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

  2. Как мне доставить/перенести это приложение (код+база данных+веб API+ …) в эксплуатацию? Нужно ли наProduction машине также запускать Docker?

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

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

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

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

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

Этот блог рассказывает о том, как использовать 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 Workstation

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

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

  1. Да, вы можете запустить Docker на Windows. Windows на VMWare также работает. Мы запускаем Docker на Linux серверах на VMWare.
  2. Самым умным решением будет также иметь Docker на производственной машине, но возможно скопировать данные из контейнеров. Однако я этого не рекомендую.
    Вы можете использовать docker save для сохранения ваших Docker образов в файлы.
    Думаю, стоит упомянуть, что не рекомендуется запускать несколько приложений внутри одного контейнера и не рекомендуется хранить данные в контейнерах, для этого лучше использовать тома.

Существует существенная разница между Docker на хосте Linux и Windows:

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

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

Франсуа

.

Ответ или решение

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

Теория

Docker — это платформенное ПО для автоматизации развёртывания и управления приложениями в контейнерах. У Docker есть множество преимуществ, включая возможность изолировать приложения и улучшить использование ресурсов. Он функционирует как на Linux, так и на Windows, но с некоторыми особенностями в зависимости от ОС.

VMware Workstation Pro, в свою очередь, это решение для создания виртуальных машин (ВМ), которое позволяет разработчикам и системным администраторам запускать несколько операционных систем одновременно на одном физическом компьютере. Оно обеспечивает полноценные изолированные виртуальные среды, которые можно использовать для различных целей разработки и тестирования.

Пример

Рассмотрим следующую ситуацию: вы используете VMware Workstation Pro на вашем физическом компьютере для запуска разных ВМ с целью различных разработок и тестов. Предположим, у вас есть ВМ с Windows 10 x64, на которой вы хотите запустить Docker для более эффективного управления и тестирования приложений.

  1. Запуск Docker в ВМ с Windows: Для начала стоит уточнить, что Docker на Windows создает дополнительную ВМ, использующую Hyper-V, для запуска контейнеров Linux. Это может создать проблему с вложенной виртуализацией, поскольку VMware изначально не поддерживает эту функцию напрямую. Помимо этого, для нормального функционирования может потребоваться включение вложенной виртуализации в BIOS вашего компьютера.

  2. Использование Chocolatey для установки Docker: Один из методов установки Docker в ВМ Windows — использование пакетного менеджера Chocolatey. Это позволяет автоматизировать процесс установки и уменьшить возможные ошибки установки.

  3. Проблемы и решения: Виртуализация в виртуализации может привести к осложнениям, таким как проблемы с сетевыми соединениями и монтированием папок. Решение этих проблем требует тщательной настройки сетевых интерактивов между различными ВМ и правильного монтирования файловых систем. Но, как правило, трудности можно преодолеть с помощью детального изучения документации и передового опыта.

Применение

Запуск Docker контейнеров в ВМ имеет очевидные преимущества в сценариях разработки и тестирования. Это позволяет создать легковесные и быстродействующие среды, которые легко развернуть и настроить. Ниже перечислены некоторые рекомендации по использованию:

  1. Разработка и тестирование: С использованием Docker в ВМ вы можете создавать легковесные и однообразные среды для разработки, что упрощает тестирование приложений в разных конфигурациях. Это особенно полезно в случае, если необходимо поддерживать несколько окружений.

  2. Переход на продуктив: Когда дело доходит до выхода в продуктив, использование Docker значительно упрощает процесс развёртывания. Однако стоит отметить, что для полноценного использования всех преимуществ Docker в продакшне, целесообразно установить Docker и на продуктивных машинах. Это обеспечит возможность использовать оркестрацию контейнеров и динамическое масштабирование.

  3. Безопасность и изоляция: Контейнеры Docker изолированы друг от друга и от системы-хоста, что придаёт дополнительный уровень безопасности. Виртуализация через VMware ещё больше усиливает этот аспект, обеспечивая минимизацию возможных рисков.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...