В чем разница между 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:
- Запуск контейнеров Linux на полной виртуальной машине Linux - это то, что Docker
обычно делает сегодня. - Запуск контейнеров 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