Можно ли запустить windows контейнер на linux

Обновлено: 08.07.2024

Если нет, то почему Windows может запускать контейнеры Linux, а не наоборот?

Прошло время и этот вопрос популярен. Я хотел бы добавить здесь одно замечание, что обходной путь должен использовать новый стандарт netstand. Это позволило мне упаковать фреймворк 4.6.2 в новую библиотеку.

спросил(а) 2021-01-01T18:08:16+03:00 10 месяцев, 3 недели назад

Обновлено в 2018 году:

Оригинальный ответ в целом правильный, НО несколько месяцев назад докер добавил экспериментальную функцию LCOW (официальный репозиторий github).

Docker для Windows уже не запускает контейнеры Linux? Вот так. Docker для Windows может запускать контейнеры Linux или Windows с поддержкой контейнеров Linux через виртуальную машину Hyper-V Moby Linux (в Docker для Windows 17.10 эта виртуальная машина основана на LinuxKit).

Настройка для запуска контейнеров Linux с LCOW намного проще, чем в предыдущей архитектуре, где виртуальная машина Hyper-V Linux запускает демон Linux Docker вместе со всеми вашими контейнерами. В LCOW демон Docker запускается как процесс Windows (так же, как при запуске контейнеров Docker Windows), и каждый раз, когда вы запускаете контейнер Linux, Docker запускает минимальный гипервизор Hyper-V, на котором запущена виртуальная машина с ядром Linux, runc и процессами контейнера. работает на вершине.

Поскольку существует только один демон Docker, и поскольку этот демон теперь работает в Windows, вскоре станет возможным запускать контейнеры Docker для Windows и Linux параллельно в одном и том же сетевом пространстве имен. Это откроет множество захватывающих сценариев разработки и производства для пользователей Docker в Windows.

Оригинал:

Как упомянуто в комментариях @PanagiotisKanavos, контейнеры не для виртуализации, и они используют ресурсы хост-машины. В результате, на данный момент контейнер Windows не может работать "как есть" на машине с Linux.

Но - вы можете сделать это с помощью VM - как это работает на Windows. Вы можете установить Windows VM на хост Linux, что позволит запускать контейнеры Windows.

С этим, IMHO, запустить его таким образом в среде PROD не будет лучшей идеей.

  • Вопрос задан более трёх лет назад
  • 6074 просмотра

Оценить 2 комментария

Ni55aN

если я не ошибаюсь, то на Windows работают те же контейнеры Linux, только через виртуальную машину

Battle_Hamster

Виталий Столяров: согласно инфе с сайтов - работают.
Но мне нужно именно на лине запустить :)
You can run Windows-based containers on Windows Server 2016 and Windows 10. Windows-based containers require a Windows kernel to run, in the same way that Linux-based containers require a Linux kernel to run. You can even run Windows-based containers on a Windows virtual machine running on an macOS or Linux host. Docker Machine is not necessary if you run macOS 10.10.3 Yosemite, Windows Server 2016, or Windows 10.

Battle_Hamster

nurbek_nurjanov

А можно кратко да или нет ? Английский плохой сорри

Нет.
Докер - это не особо большая НАДСТРОЙКА над ядром Линукса.

Он просто удобным способом позволяет изолировать и запускать родные приложения Линукса.
Из неродных вариантов - разве только запуск Линуксовых приложений из под Докера ФриБСД или напротив запуск Фришных приложение из под Докера Линуха - так как эти операционные системы близки.

С Виндовс сие невозможно в принципе.
Тот Докер что устанавливается в Виндовс - тянет за собой полноценный Линукс. И только это делает возможным запуска Линукс приложений в Докере Виндовс.

Обратная процедура также нетривиальна.

Если вам нужен аналог Докера для запуска приложений Виндовс - обратитесь к технологии Windows Container.

Я использую бета-версию от Докер для windows

Если нет, то почему windows может запускать контейнеры linux, а не и наоборот?

Как прошло некоторое время и этот вопрос популярный. Я хотел бы добавить здесь одно замечание, что обходной путь заключается в использовании нового netstandard. Это позволило мне упаковать 4.6.2 framework в новую библиотеку.

Оригинал:

Как уже упоминалось в комментариях @PanagiotisKanavos, контейнеры не предназначены для виртуализации, и они используют ресурсы главной машины. В результате на данный момент контейнер windows не может работать "как есть" на машине linux.

но - вы можете сделать это с помощью VM - как это работает на windows. Вы можете установите Windows VM на вашем хосте linux, который позволит запускать контейнеры windows.

с ним, ИМХО запустить его таким образом на среде PROD не будет лучшей идеей.

и ответ предоставляет более подробную информацию.

вы можете использовать контейнеры Windows внутри виртуальной машины (гостевая ОС должна соответствовать требованиям - Windows 10 Pro или Windows 2016).

вы можете использовать VirtualBox, просто включите интерфейс Hyper-V внутри системы / ускорения / паравиртуализации.

после этого, если Docker не запускается из-за ошибки, используйте "переключиться на контейнеры Windows. "в настройках.

(Это может быть перемещено в качестве комментария к принятому ответьте, но у меня недостаточно репутации, чтобы сделать это)

в отличие от виртуализации, контейнеризация использует одну и ту же ОС хоста. Таким образом, контейнер, построенный на linux, не может быть запущен на windows и наоборот.

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

Docker для windows-это аналогичное приложение, которое построено на Hyper-v и помогает в запуске контейнера Linux docker в windows. Но насколько я знаю, нет ничего такого что помогает запускать контейнеры windows на linux.

- Есть несколько однотипных графических приложений для винды. В основном разнопёрые котировочные терминалы.

- По вайном хоть и со скрипом, но вроде запускаются.

- Одновременно работает сборка из нескольких терминалов, в дальнейшем планируется масштабирование.

Назрел такой примерный план.

- Ставим на него контейнеры с иксами, вайнами и прочими приблудами.

- Ставим на вайн набор виндовых программ.

- Имеем портативную сборку нужных виндовых программ, которую можно будет запустить и на любом линукс дистре.

- Может кто поделиться опытом подобных извращений?

- Стоит ли ввязываться? Подводные камни может какие?

Ну и всяческие добрые советы по теме принимаются.)


Почему не взять полноценные виртуальные машины, типа VirtualBox или QEMU (если поддерживается KVM)? Или вообще не загружать эти дистры на железе?

Ведь с Докером у тебя будет ядро от хоста, а не из дистрибутива, где ты тестируешь, а также может понадобиться настраивать гостевую систему так, как её на реальном железе никто бы не настраивал.

Почему не взять полноценные виртуальные машины, типа VirtualBox или QEMU (если поддерживается KVM)? Или вообще не загружать эти дистры на железе?

Ну в общем-то да. Тестировать на виртуалках буду. Не исключено даже, что и использовать. Но хочется после всех тестов получить легкую, чтоб ничего лишнего, и легко модфифицируемую в случае необходимости смены базового дистра систему.

Так что, наверное, стоит уточнить вопрос. Есть ли какой минималистичный дистр, на котором можно без особых запаров вайн с графикой запустить внутри докера?


Я под такие хотелки просто собирал минимально генту и все. Минимум пакетов, ничего лишнего.

Я под такие хотелки просто собирал минимально генту и все. Минимум пакетов, ничего лишнего.

Ннаверное, так и сделаю. Заодно дженту поосиливаю слегка. Давно руки чесались.


а можно подробнее про проект рассказать? у меня отец недавно спрашивал за торговые терминалы на линуксе, я ему порекомендовал не связываться так как непонятно что и как (не)работает в вайне. было бы интересно почитать про опыт запуска всего околотрейдерского, что работает и нет.

минимально генту и все. Минимум пакетов, ничего лишнего

Оксюморон. Девелоперских пакетов для сборки больше, чем вес всей остальной системы.

Оксюморон. Девелоперских пакетов для сборки больше, чем вес всей остальной системы.

А каким путём тогда лучше пойти?

а можно подробнее про проект рассказать? у меня отец недавно спрашивал за торговые терминалы на линуксе, я ему порекомендовал не связываться так как непонятно что и как (не)работает в вайне. было бы интересно почитать про опыт запуска всего околотрейдерского, что работает и нет.

Читайте также: