В чем разница между Docker для Windows и Docker для Windows?

Кажется, что Docker в Windows встроен в Windows Server 2016? и поддерживает запуск Windows внутри контейнера Docker и использование Windows в качестве узла контейнера Docker. Это поддерживает Linux? Я так не думаю, я думаю, что он поддерживает только запуск контейнеров Windows Docker. Это также, похоже, поддерживается Microsoft.

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

Еще одно интересное замечание: Docker Tools для Visual Studio, похоже, поддерживает только Docker Desktop для Windows, но не Docker для Windows.

Что я действительно ищу, так это заявленные различия между ними, какое-то хорошее сравнение. Какие функции пытается достичь каждый, в чем они похожи, в чем они разные. Всегда ли они будут разными или когда-нибудь соберутся вместе?


person Aaron Stainback    schedule 19.07.2016    source источник
comment
Ответы, содержащие только ссылки, обычно не одобряются, я просто прокомментирую эту статью, которая дает хороший обзор Docker-on-Windows: collabnix.com/   -  person Ed Randall    schedule 06.09.2019


Ответы (2)


Docker в Windows - это разговорный способ обозначить просто Docker Engine, работающий в Windows. Я считаю полезным думать об этом как о хосте контейнеров Windows, так что да, только контейнеры Windows. Это будет то, что вы бы запустили на машине Windows Server 2016. Так что, возможно, лучшее название - Docker для Windows Server, которое, как мне кажется, люди тоже использовали. Я по-прежнему предпочитаю Windows Container Host. Это означает, что у него есть только Docker Engine в конце дня, даже не нужно иметь каких-либо клиентов Docker (docker CLI, docker-compose и т. Д.).

Docker Desktop для Windows - это продукт, предназначенный для запуска контейнеров как Linux, так и Windows в Windows. Он не предназначен для производственной среды, а вместо этого предназначен для настольного / клиентского SKU Windows, отсюда и требование Windows 10. Так что вы можете думать об этом как о Docker для Windows 10. Поскольку DfW может запускать оба типа контейнеров, существуют разные конфигурации, которые он настраивает на вашем компьютере:

  • При использовании контейнеров Linux DfW создает MobyLinuxVM с Hyper-V, внутри которого прозрачно запускает контейнеры Linux, как если бы они были запущены на хосте Windows 10.
  • При использовании контейнеров Windows DfW устанавливает те же компоненты, что и Docker в Windows, поэтому у вас есть хост контейнера Windows. Теперь у вас есть установка Windows Docker Engine. Затем это позволяет запускать контейнеры Windows на клиентском SKU Win 10.

Теоретически вы можете установить DfW на Windows Server, я не пробовал, поэтому не знаю, не получится ли это, но зачем вам запускать контейнеры Linux на хосте Windows в производственной среде? В производстве у вас будут хосты контейнеров Linux, которые запускают контейнеры linux, и хосты контейнеров Windows, которые запускают контейнеры Windows, это позволит избежать накладных расходов и упростить работу.

person Wes    schedule 29.10.2016
comment
Вы можете использовать Docker для Windows в Windows Server 2016, хотя это взлом: stackoverflow.com/a/42981131/444244 - person Boggin; 25.04.2017
comment
Интересно, что когда вы загружаете Docker Desktop для Windows, вы получаете Docker для Windows Installer.exe здесь hub.docker.com/editions/community/docker-ce-desktop-windows и можете просто угадать, какой именно. - person Marc; 05.09.2019

Просто добавьте поверх ответа Уэса о Docker для Windows и некоторых подробностей об экспериментальном LCOW, который вы ищете для параллельного выполнения контейнеров Windows и Linux на хост-машине Windows.

Прямо сейчас есть два способа запустить контейнеры Linux с Docker для Windows и Hyper-V:

  1. Запуск контейнеров Linux на полной виртуальной машине Linux - это то, что обычно делает Docker
    сегодня.
  2. Запускать контейнеры Linux в Windows (LCOW) с изоляцией Hyper-V - это новая опция в Docker для Windows.

При первом подходе Docker для Windows будет иметь службу демона докера на хост-машине Windows, а также будет доступна на виртуальной машине Linux MOBY. Таким образом, у вас будет 2 разных хоста докеров. Один, который работает на вашем хост-компьютере Windows, управляет только контейнерами Windows, а другой, который работает на вашей виртуальной машине Linux Moby и управляет только контейнерами Linux.

Важно отметить, что все контейнеры Linux будут совместно использовать одно ядро ​​Linux на виртуальной машине Moby, а все контейнеры Windows будут совместно использовать одно ядро ​​Windows на хост-машине Windows.

введите описание изображения здесь

Со вторым подходом все становится действительно интересным,

Контейнеры Linux с изоляцией Hyper-V запускают каждый контейнер Linux на оптимизированной виртуальной машине Linux с достаточным количеством ОС для запуска контейнеров. Каждый контейнер Linux имеет собственное ядро ​​ и собственную изолированную программную среду виртуальной машины. Они также напрямую управляются Docker в Windows.

введите описание изображения здесь

Основное отличие этого подхода заключается в том, что на хост-машине Windows работает только одна служба демона докеров, которая управляет контейнерами Windows и Linux.

Все контейнеры Windows будут использовать одно ядро ​​Windows, в то время как каждый контейнер Linux будет иметь собственное ядро ​​Linux.

Для получения более подробной информации см. https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers.

person Mohit Dharmadhikari    schedule 20.10.2019