Можно ли размещать контейнеры Windows в linux?
возможно ли это запустить Контейнеры Windows on Linux? Сценарий основан на решении, написанном в .NET (старая сеть) и пользователей Linux который хочет запустить это с Докером, чтобы предоставить net462
написанный API на localhost
.
Я использую бета-версию от Docker для windows
Если нет, то почему windows может запускать контейнеры linux, а не наоборот?
EDIT:
Как прошло некоторое время и этот вопрос популярный. Я хотел бы добавить здесь одно замечание, что обходной путь-использовать новый netstandard. Это позволило мне упаковать 4.6.2 framework в новую библиотеку.
6 ответов
обновление 2: 08.2018 Если вы используете Docker-for-Windows, Теперь вы можете запускать контейнеры windows и linux одновременно: https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows-and-linux-containers-simultaneously/
бонус: не имеет прямого отношения к вопросу, но теперь вы можете запустить не только сам контейнер linux, но и orchestrator как kubernetes: https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel/
Обновлено 2018:
оригинальный ответ в целом правильный, но несколько месяцев назад, докер добавили экспериментальная функция LCOW (официальный репозиторий github).
с этот пост:
Не Docker для Windows уже запускает Linux контейнеры? Вот именно. Docker для Windows может запускать контейнеры Linux или Windows с поддержкой для контейнеров Linux через VM Hyper-V Moby Linux (с Docker для Windows 17.10 эта виртуальная машина основана на LinuxKit).
настройка для запуска контейнеров Linux с LCOW намного проще, чем предыдущая архитектура где виртуальная машина Hyper-V Linux запускает Докер Linux Деймон, вместе со всеми твоими контейнерами. С lcow, демон Docker запускается как процесс Windows (то же самое как при запуске Docker Windows containers), и каждый раз, когда вы запускаете Докер контейнеров Linux запускает минимальный гипервизор Hyper-V под управлением виртуальной машины с Linux ядро, runc и контейнерные процессы, запущенные сверху.
потому что есть только один демон Docker, и потому что этот демон сейчас работает на Windows, it скоро можно будет запускать Windows и Linux Контейнеры Docker бок о бок, в том же сетевом пространстве имен. Этот разблокирует большое захватывающие сценарии развития и производства для Пользователи Docker в Windows.
Оригинал:
Как упоминалось в комментариях @PanagiotisKanavos, контейнеры не предназначены для виртуализации, и они используют ресурсы главной машины. В результате на данный момент контейнер windows не может работать "как есть" на машине linux.
но - вы можете сделать это с помощью VM-как это работает на windows. Вы можете установите Windows VM на хост linux,который позволит запускать контейнеры windows.
с ним, ИМХО запустить его таким образом на среде PROD не будет лучшей идеей.
и ответ предоставляет более подробную информацию.
нет, вы не можете запускать контейнеры windows непосредственно в Linux.
но Windows Server поставляется в комплекте с базовым образом ubuntu OS (после сентября 2016 бета-пакет обновления). Именно по этой причине вы можете запускать linux на windows, а не другие мудрые. Проверьте здесь. https://thenewstack.io/finally-linux-containers-really-will-run-windows-linuxkit/
вы можете изменить между контейнерами ОС Linux и windows, щелкнув правой кнопкой мыши на ДОКере в меню лотка.
вы можете использовать контейнеры Windows внутри виртуальной машины (гостевая ОС должна соответствовать требованиям - Windows 10 Pro или Windows 2016).
вы можете использовать VirtualBox, просто включите интерфейс Hyper-V внутри системы / ускорения / паравиртуализации.после этого, если Docker не запускается из-за ошибки, используйте "переключиться на контейнеры Windows..."в настройках.
(Это может быть перемещено как комментарий к принятому ответ, но у меня недостаточно репутации, чтобы сделать это)
в отличие от виртуализации, контейнеризация использует ту же ОС. Таким образом, контейнер, построенный на linux, не может быть запущен в windows и наоборот.
в windows вы должны воспользоваться помощью виртуализации (с помощью Hyper-v), чтобы иметь ту же ОС, что и ОС ваших контейнеров, а затем вы должны иметь возможность запускать то же самое.
Docker для windows аналогичное приложение, которое построено на Hyper-v и помогает в запуске контейнера docker linux на windows. Но, насколько мне известно, ничего подобного нет. который помогает запускать контейнеры windows в linux.
вы можете запустить MSSQL и DOTNET на Linux, и, следовательно, внутри контейнеров Linux, в настоящее время.
контейнеры Windows не работают в Linux, а также вы не можете запускать контейнеры Linux непосредственно в Windows.