Как использовать контейнер в WSL 2 без установки функции Hyper-V?

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

  • ОС: Win 10 Enterprise 22H2 сборка 19045

  • Гипервизор: VMware® Workstation 17 Pro

Можно ли установить WSL на клиенте Windows, не устанавливая функцию Hyper-V?

Моя проблема в том, что я использую VMWare Workstation Pro для своих лабораторий. И теперь я хотел бы использовать Docker Desktop на своем компьютере для хостинга своих контейнеров.

Но, к сожалению, Docker Desktop сообщает, что я не установил Hyper-V, но это нормально, потому что невозможно иметь 2 гипервизора типа 1 на одном хосте.

У вас есть идеи, как мне обойтись своими локальными контейнерами? Может быть, без Docker Desktop, но мне нужно немного света 🙂

WSL2 это фактически виртуальная машина Hyper-V, поэтому требуется наличие Windows Hypervisor. Вы не можете запустить его на VMware.

Согласно документации VMware, Workstation Pro 15.5.5 (или более поздней версии, я предполагаю?) поддерживает использование Windows Hypervisor вместо собственного гипервизора в режиме “Host VBS”.

Нет возможности использовать Docker Desktop для запуска Linux-контейнеров на Windows без Hyper-V. Ему необходимо либо запускать собственную Linux ВМ (по умолчанию, если я правильно помню), либо иметь среду WSL2, с которой он может работать (что, в свою очередь, требует Hyper-V (технически ‘Windows Hypervisor’, но это просто название, которое выбрала Microsoft для интерфейса). На самом деле, вы не можете использовать его для запуска родных Windows-контейнеров на Windows без Hyper-V, потому что это потребовало бы функцией ‘Контейнеры’, которая также зависит от Hyper-V.

Это оставляет вам несколько вариантов:

  1. Создать полноценную Linux ВМ в VMWare и установить Docker там. Это, вероятно, будет самым простым вариантом, а также, вероятно, лучшим с точки зрения обучения.
  2. Создать Windows ВМ в VMWare с включенной поддержкой вложенной виртуализации и установить Docker Desktop в этом случае. Это будет иметь ужасную производительность (Windows не виртуализируется хорошо, а Hyper-V делает это еще хуже), но это значит, что вам не придется напрямую иметь дело с Linux.
  3. Настроить свой компьютер для двойной загрузки с установкой Linux и установить Docker там. Это обеспечит вам наилучшие возможные характеристики для контейнеров, но они не будут доступны одновременно с вашими ВМ или системой Windows.

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

Для использования контейнеров в Windows с установленным WSL 2 без включения функции Hyper-V, необходимо уточнить, что WSL 2 фактически является виртуальной машиной Hyper-V, и требует наличие Windows Hypervisor для корректной работы. Следовательно, если вы используете VMware Workstation Pro, конфликт между гипервизорами может препятствовать правильной работе WSL 2 и Docker Desktop.

К сожалению, использование Docker Desktop для работы с контейнерами в Windows без Hyper-V не представляется возможным, так как он требует либо использовать собственную виртуальную машину, либо работать в среде WSL 2, что также подразумевает наличие Hyper-V. Кроме того, для запуска нативных контейнеров Windows также необходима поддержка Hyper-V.

В данной ситуации я предлагаю несколько альтернативных решений:

  1. Настройка Linux VM в VMware: Легчайший способ решения вашей проблемы — это создание полноценной виртуальной машины с операционной системой Linux внутри VMware и установка Docker в этой среде. Это обеспечит вам всю функциональность Docker и возможность работы с контейнерами.

  2. Настройка Windows VM с использованием вложенной виртуализации: Создание виртуальной машины Windows в VMware с включенной вложенной виртуализацией позволяет установить Docker Desktop в этой среде. Однако, стоит отметить, что производительность будет значительно снизится, так как виртуализация Windows не является оптимальной.

  3. Дуальное загрузка с установкой Linux: Рассмотрите возможность настройки системы с dual boot, чтобы получить возможность работать в Linux и устанавливать Docker там. Этот способ обеспечит наилучшие характеристики производительности, но контейнеры не будут доступны одновременно с вашими виртуальными машинами или системой Windows.

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

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

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