В чем разница между 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 для Windows, а не Docker в Windows.

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

1 ответ

Решение

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

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

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

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

Просто добавьте поверх ответа Уэса о 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 VM. Таким образом, у вас будет 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

Другие вопросы по тегам