Часто задаваемые вопросы о контейнерах

Если у вас есть вопрос о контейнерах Windows Server, возможно, ответ на него вы найдете ниже.

В чем отличие контейнеров Linux и контейнеров Windows Server?

В ядрах и базовых операционных системах Linux и Windows Server реализованы сходные технологии. Отличие заключается в платформе и рабочих нагрузках, выполняющихся в контейнерах.

Контейнеры Windows Server можно интегрировать с существующими технологиями Windows, например .NET, ASP.NET, PowerShell.

Каковы предварительные требования для запуска контейнеров в Windows?

Контейнеры были введены для этой платформы начиная с версии Windows Server 2016. Чтобы использовать контейнеры, вам потребуется Windows Server 2016, юбилейное обновление Windows 10 (версия 1607) или более поздней версии, Windows 10 IoT Корпоративная или более поздней версии. Чтобы узнать больше, ознакомьтесь с системными требованиями.

Какие операционные системы Windows поддерживаются в Kubernetes?

Поддержка контейнеров Windows зависит от платформы Kubernetes, на которой она выполняется. Служба Azure Kubernetes (AKS) и AKS в Azure Stack HCI и Windows Server поддерживают узлы Windows Server 2019 и Windows Server 2022. Служба Azure Kubernetes Edge Essentials поддерживают Windows Server 2019, Windows Server 2022 и Windows 10/11 Корпоративная или Pro. Сведения о совместимости версий контейнеров Windows см. в этой статье.

Как поставить заплаты для моих узлов Windows?

Узлы Windows Server в AKS и AKS в Azure Stack HCI и Windows Server должны быть обновлены для получения последних исправлений и обновлений. Windows Обновления не включены на узлах Windows в этих службах. Однако обе службы предоставляют механизмы обновления образов узлов Windows.

Могут ли мои контейнеры Windows Server использовать gMSA?

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

Что такое WCOW и LCOW?

WCOW означает "контейнеры Windows в Windows", а LCOW — "контейнеры Linux в Windows".

Как осуществляется лицензирование контейнеров? Существует ли ограничение на количество контейнеров, которые я могу запустить?

Лицензионное соглашение для образа контейнера Windows описывает использование, которое зависит от наличия у пользователя действительной лицензии на ОС узла. Количество контейнеров, которые может запустить пользователь, зависит от выпуска ОС узла и режима изоляции, с которым выполняется контейнер, а также от того, запускаются ли эти контейнеры в целях разработки/тестирования или в рабочей среде.

ОС узла Количество контейнеров при изоляции на уровне процессов Количество контейнеров при изоляции с помощью Hyper-V
Windows Server Standard Без ограничений 2
Windows Server Datacenter Без ограничений Неограниченно
Windows Pro и Корпоративная Без ограничений (только для целей тестирования или разработки) Без ограничений (только для целей тестирования или разработки)
Windows 10 IoT Базовая Без ограничений Без ограничений
Windows IoT Корпоративная Без ограничений Без ограничений

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

Примечание

*Использование в рабочей среде контейнеров в выпуске Интернета вещей Windows зависит от того, согласились ли вы с коммерческими условиями использования образов среды выполнения Windows Core или лицензией на корпоративные устройства Windows IoT ("Коммерческое соглашение о Windows IoT"). Дополнительные условия и ограничения для коммерческих соглашений по Windows IoT применяются к использованию образа контейнера в рабочей среде. Ознакомьтесь с лицензионным соглашением для образа контейнера, чтобы точно понимать, что разрешено, а что нет.

Нужно ли разработчику переписывать приложение под каждый тип контейнера?

Нет. Контейнеры Windows Server и изоляция Hyper-V используют общие образы. Вы выбираете тип при запуске контейнера. С точки зрения разработчика между контейнерами Windows Server и изоляцией Hyper-V нет принципиальных различий. Открытые и расширяемые, они предусматривают одинаковые возможности для разработки, программирования и управления, а также одинаковый уровень интеграции и поддержки с помощью Docker.

Разработчик может создать образ контейнера с помощью контейнера Windows Server и развернуть его в изоляции Hyper-V, или наоборот, не внося изменений, лишь установив флажок необходимой среды выполнения.

Контейнеры Windows Server обеспечивают более высокую плотность и производительность (меньшее время раскрутки, когда ключевым фактором является скорость, более высокую производительность среды выполнения по сравнению с вложенными конфигурациями). Изоляция Hyper-V, в полном соответствии со своим названием, обеспечивает лучшую изоляцию, чтобы код, выполняющийся в одном контейнере, не мог нарушить безопасность или стабильность операционной системы узла или других запущенных на нем контейнеров. Это удобно при обслуживании одним экземпляром приложения нескольких развертываний (необходимо размещение кода без доверия), в том числе размещении приложений SaaS и среды выполнения приложений.

Можно ли запускать контейнеры Windows в режиме изоляции процессов в Windows 10?

Начиная с обновления Windows 10 за октябрь 2018 года можно запустить контейнер Windows в изолированном процессе, но сначала необходимо напрямую запросить изоляцию процесса с помощью флага --isolation=process при запуске контейнеров с docker run. Изоляция процессов совместима с Windows 10 11 Pro (или более поздней версии), Windows 10 Корпоративная (или более поздней), Windows 10 IoT Базовая и Windows 10 IoT Корпоративная (или более поздней версии).

Если вы хотите выполнять контейнеры Windows таким образом, необходимо убедиться, что узел работает под управлением Windows 10 Build 17763+ и у вас установлена версия Docker с ядром версии 18.09 или более поздней.

Предупреждение

Эта функция предназначена только для разработки или тестирования, но не на узлах под управлением версий IoT Базовая и IoT Корпоративная (после принятия дополнительных условий и ограничений). Для развертывания в рабочей среде в качестве узла следует продолжать использовать Windows Server. Используя эту функцию, вы также должны убедиться, что теги версии узла и контейнера и номер сборки совпадают. В противном случае контейнер может не запуститься или продемонстрировать неопределенное поведение.

Как можно сделать образы контейнеров доступными на территориально разнесенных компьютерах?

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

Это может усложнить работу при наличии территориально удаленного компьютера, который может получать образы только из закрытого реестра контейнеров. В этом случае попытки выполнить внешний слой для получения базового образа не будут работать. Чтобы переопределить поведение внешнего слоя, можно использовать флаг --allow-nondistributable-artifacts в управляющей программе Docker.

Важно!

Использование этого флага не исключает обязательства в соответствии с условиями лицензии на базовый образ контейнера Windows; не следует публиковать содержимое Windows для общедоступного распространения или для передачи третьим сторонам. Использование в собственной среде разрешено.

Хотите оставить дополнительный отзыв?

Хотите добавить что-нибудь в часто задаваемые вопросы? Создайте новый отзыв в разделе комментариев или подайте запрос на включение внесенных изменений для этой страницы с помощью GitHub.