Базовые образы контейнеров

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

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

Обнаружение образов

Все базовые образы контейнеров Windows обнаруживаются через Docker Hub. Для обслуживания этих образов контейнеров Windows используется mcr.microsoft.com, реестр контейнеров Майкрософт (MCR). Поэтому команды получения для базовых образов контейнеров Windows выглядят следующим образом:

docker pull mcr.microsoft.com/windows/servercore:ltsc2022

Реестр MCR не имеет своих средств для каталогов, а предназначен для поддержки уже имеющихся каталогов, таких как Docker Hub. Благодаря глобальному объему ресурсов Azure и в сочетании с Azure CDN MCR обеспечивает единый и быстрый интерфейс извлечения изображений. Клиенты Azure, рабочие нагрузки которых выполняются в Azure, получают такие преимущества, как более высокая производительность в сети и тесная интеграция с MCR (источником образов контейнеров Майкрософт), с Azure Marketplace и все большим числом служб Azure, в которых контейнеры предлагаются в качестве формата пакета развертывания.

Выбор базового образа

Как выбрать правильный базовый образ для создания контейнера? Для большинства пользователей больше всего подойдут образы Windows Server Core и Nanoserver. Каждый из базовых образов кратко описан ниже.

  • Nano Server — это минимальный образ Windows для разработки новых приложений.
  • Server Core имеет средний размер и хорошо подходит для прямой миграции (lift-and-shift) приложений Windows Server в облако.
  • Windows — это самый крупный образ с полной поддержкой API Windows для рабочих нагрузок.
  • Windows Server имеет чуть меньший размер, чем образ Windows, включает полную поддержку API Windows и позволяет использовать дополнительные серверные функции.

Рекомендации

Вы можете выбрать любой образ, но есть ряд рекомендаций.

  • Вашему приложению нужна полная версия .NET Framework? Если ответ утвердительный, следует выбрать Windows Server Core.
  • Вы создаете приложение для Windows на основе .NET Core? Если ответ утвердительный, следует выбрать Nanoserver.
  • В образе контейнера Windows Server Core нет зависимости, необходимой вашему приложению? Если ответ утвердительный, попробуйте использовать Windows. Размер этого образа значительно больше, чем размеры других базовых образов, но он содержит множество базовых библиотек Windows (например, библиотека GDI).
  • Вы являетесь участником программы предварительной оценки Windows? Если да, рекомендуем использовать образы в версии для предварительной оценки. Дополнительные сведения см. в разделе "Базовые образы для участников программы предварительной оценки Windows" ниже.
  • Нужна ли вашим контейнерным рабочим нагрузкам поддержка ускорения на базе GPU? Если нужна, рекомендуем использовать образ Windows Server, включающий аппаратное ускорение для нагрузок контейнеров Windows.

Совет

Многие пользователи Windows хотят поместить в контейнер приложения, имеющие зависимость от .NET. Помимо четырех базовых образов, описанных здесь, корпорация Майкрософт публикует несколько образов контейнеров Windows, предварительно настроенных для таких популярных платформ Майкрософт, как .NET Framework и ASP.NET.

Сравнение Windows и Windows Server

Размер образа Windows Server (3,1 ГБ) немного меньше, чем образа Windows (3,4 ГБ). Образ Windows Server также наследует все улучшения производительности и надежности из образа Server Core, имеет поддержку графического процессора и не имеет ограничений для подключений IIS. Чтобы использовать последний образ Windows Server, вам потребуется установка Windows Server 2022. Образ Windows недоступен для Windows Server 2022.

Базовые образы для участников программы предварительной оценки Windows

Для каждого базового образа контейнера Майкрософт предоставляет версию для предварительной оценки. В таких образах контейнеров содержатся последние и лучшие доработки функций. Эти образы рекомендуется использовать при запуске узла с версией для предварительной оценки Windows (программа предварительной оценки Windows или Windows Server). Приведенные ниже образы для участников программы предварительной оценки доступны в Docker Hub:

Дополнительные сведения см. в статье Использование контейнеров с Программой предварительной оценки Windows.

Сравнение образов Windows Server Core и Nano Server

Windows Server Core и Nanoserver — самые распространенные базовые образы. Основное различие между этими образами заключается в том, что в Nano Server поверхность API значительно меньше. В образе Nano Server нет PowerShell, WMI и стека обслуживания Windows.

Этот образ предоставляет поверхность API, которой как раз достаточно для запуска приложений, зависящих от .NET Core и других современных платформ с открытым кодом. Кроме того, при меньшей поверхности API образ Nano Server занимает значительно меньше места на диске в сравнении с другими базовыми образами Windows. Помните, что вы всегда можете добавлять слои на вершине Nano Server, как вы видите. Пример этого проверка из Dockerfile .NET Core Nano Server.