Плюсы и минусы использования контейнеров Windows вместо контейнеров Linux для Docker?

37

Я устанавливаю Docker для Windows (CE) на Windows 10, и первый экран спрашивает меня:

[] Используйте контейнеры Windows вместо контейнеров Linux (это можно изменить после установки)

Это кажется важным решением, но документация по Docker , FAQ и учебник по Windows дают информации о том, почему я могу выбрать один из них.

Было бы полезно иметь объективный обзор последствий этого выбора:

  • Будет ли один вариант быстрее другого?
  • Влияет ли решение на использование системных ресурсов (RAM, CPU)?
  • Могу ли я запускать одни и те же изображения на обоих типах?
  • Один безопаснее другого?

Любые другие различия, которые могут помочь мне прийти к выводу, будут очень кстати.

Дункан Джонс
источник
Ответ на это не основан на мнении. И это принято. Так что нет необходимости закрывать это.
Нильс

Ответы:

19

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

Будет ли один вариант быстрее другого?

Быстрее при чем?

Влияет ли решение на использование системных ресурсов (RAM, CPU)?

Windows использует больше ресурсов, чем Linux - Windows Nano настолько мала, насколько это возможно

Могу ли я запускать одни и те же изображения на обоих типах?

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

Один безопаснее другого?

Опять же - в чем безопасность? Нет. Они оба используют собственный Docker, так что это не что иное, как hyper-v против VMware и больше похоже на Linux против Windows, поэтому все зависит от того, что вы собираетесь запускать .net, python, java, ruby ​​и т. Д.

Sum1sAdmin
источник
2
Второе это. Чтение дополняет этот ответ containerjournal.com/2016/10/28/…
A.Newgate
4
Поэтому, если я решу использовать контейнеры Linux, Docker запустит виртуальную машину Hyper-V Linux для запуска моих контейнеров, в противном случае он будет запускать контейнеры Windows изначально? И я не могу запустить оба типа контейнеров одновременно?
Дункан Джонс
1
Docker для Windows 10 позволяет вам это делать - но в процессе работы у вас будет роя
Docker с
Docker основан на lxc (Linux) - он будет использовать то же ядро, что и Docker-хост. Если вы запускаете Windows в lxc, он должен виртуализировать или эмулировать win. Не уверен, относится ли это к win-docker, поскольку win поддерживает linux.
Нильс
1
@DuncanJones, всего через 3 дня после того, как вы спросили, что на MSDN есть запись в блоге, объясняющая, что теперь вы МОЖЕТЕ запускать контейнеры Windows и Linux параллельно.
Йонас Гейдельберг