Docker: зачем использовать контейнеры Linux в Windows?

Я использую Win 10 Pro N (версия 1709) в качестве машины для разработки и Windows Server 2016 Standard (версия 1607) в качестве рабочего сервера.

В настоящее время я разрабатываю приложение ASP.NET Core 2 с MongoDb в качестве базы данных.

Пару дней назад я впервые наткнулся на идею запустить MongoDb как образ Docker.

У меня пока нет опыта работы с Docker, но мне удалось переключиться с контейнеров Linux (по умолчанию) на контейнеры Windows на компьютерах с Windows.

Было ли это хорошим решением? Или есть какая-то причина, по которой я должен использовать контейнеры Linux вместо контейнеров Windows в моем сценарии?

Что, например. если я когда-нибудь решу развернуть свое приложение на сервере Linux? В таком случае не будет ли разумнее начать с контейнеров Linux с самого начала?


person Ingmar    schedule 03.01.2018    source источник
comment
Вы можете использовать оба и переключаться между ними в любое время, а также запускать контейнеры в обоих режимах одновременно. Единственным недостатком является то, что вы не можете управлять (подключать, запускать, останавливать и т. д.) контейнерами невыбранного режима.   -  person OrangeDog    schedule 17.07.2019
comment
см. serverfault.com/questions/908000/   -  person Line    schedule 03.09.2019


Ответы (2)


Если вы хотите выполнить развертывание в Linux, я бы посоветовал использовать контейнеры Linux, поскольку затем вы тестируете более похожую настройку и с большей вероятностью обнаружите проблемы, которые также проявятся в вашем окончательном развертывании.

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

person herm    schedule 03.01.2018
comment
Означает ли это, что я могу запустить контейнер Linux на компьютере с Windows, но не могу запустить контейнер Windows на компьютере с Linux? - person Ingmar; 03.01.2018
comment
Вы не можете запустить контейнер Windows на машине с Linux. Однако вы можете запустить контейнер Linux на компьютере с Windows, потому что Linux является бесплатным и открытым исходным кодом, а для этой цели Windows просто запускает Linux поверх окон. - person herm; 03.01.2018

Docker — это не виртуализация, а скорее изоляция.

Контейнер Windows будет работать на хосте Windows

Контейнер Linux будет работать на хосте Linux.

Затем некоторые люди захотели запустить linux-контейнер на окнах.

  • Сначала вам нужно было создать linux vm на windows для запуска контейнера
  • Теперь вы можете использовать LinuxKit для запуска контейнера, но это все еще легкая виртуальная машина.

Затем некоторые люди захотели запустить контейнер Windows в Linux.

  • Сначала вам нужно было создать виртуальную машину Windows на Linux для запуска контейнера.
  • Теперь вы больше ничего не можете использовать на сегодняшний день

Поэтому лучше всего начать с контейнера, предназначенного для ваших производственных серверов.

person Mumrah81    schedule 03.01.2018
comment
Чтобы было понятно, если вы используете контейнеры Linux с Docker для Windows, он автоматически управляет виртуальной машиной Linux, на которой их запускают. - person OrangeDog; 17.07.2019