Плюсы и минусы использования контейнеров 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 ​​и т. Д.


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 параллельно.
Йонас Гейдельберг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.