Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
.NET предоставляет различные образы контейнеров для различных сценариев. В этой статье описываются различные типы изображений и их использование. Дополнительные сведения об официальных образах см. в репозитории Docker Hub: Microsoft .NET.
Схема тегов
Начиная с .NET 8, более прагматичный подход применяется к различению образов контейнеров. Для отличия изображений используются следующие характеристики:
- Идентификатор целевого фреймворка (TFM) приложения.
- ОС, версия и архитектура.
- Тип изображения (например,
runtime,aspnet,sdk). - Вариант изображения (например,
*-distroless,*-chiseled). - Функция изображения (например,
*-aot,*-extra).
Изображения, оптимизированные для размера
Следующие изображения созданы с упором на достижение наименьшего возможного размера изображения.
- Альпийский
- Морской пехотинец дистрибутив
- Осколки Ubuntu
Эти изображения меньше, так как они не включают зависимости глобализации, такие как ICU или tzdata. Эти образы работают только с приложениями, настроенными для инвариантного режима глобализации. Чтобы настроить приложение для инвариантной глобализации, добавьте в файл проекта следующее свойство:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
совет, чаевые
Образы пакета SDK не создаются для *-distroless или *-chiseled типов образов. Составные изображения — это наименьшее предложение aspnet для Core CLR.
Изображения, подходящие для глобализации
Контейнерные приложения, которым требуются возможности глобализации, увеличивают размер образа, так как они зависят от компонентов глобализации. Образы Ubuntu и Debian уже содержат установленные ICU и tzdata.
Зависимость tzdata была добавлена в следующие образы:
runtime-deps:8.0-jammyruntime-deps:8.0-bookworm-slim
Эта тактика глобализации используется в изображениях runtime, aspnetи sdk, что имеют тот же тег.
Важный
Добавление tzdata в образы Debian bookworm не имеет практического эффекта, если только нет обновления tzdata (которое еще не включено в Debian), когда образы .NET будут включать более новую tzdata.
Некоторые пакеты по-прежнему необязательны, например Kerberos, LDAP и msquic. Эти пакеты необходимы только в нишевых сценариях.
Образы на основе сценариев
Образы среды выполнения имеют значительное значение, особенно поскольку они включают определения стандартных пользователей и портов. Они удобны для использования в автономных и родных сценариях AOT. Однако исключительно предоставление образов runtime-deps, необходимых для среды выполнения и пакета SDK, недостаточно для реализации всех возможных сценариев или достижения оптимальных образов.
Потребность в runtime-deps распространяется также на родные типы изображений AOT, *-distrolessи *-chiseled. Для каждой операционной системы предоставляются три варианта изображения (все в runtime-deps). Рассмотрим следующий пример с помощью изображений *-chiseled:
-
8.0-jammy-chiseled: изображения для Core CLR, без tzdata или ICU. -
8.0-jammy-chiseled-aot: изображения для нативного AOT, без tzdata, ICU или stdc++. -
8.0-jammy-chiseled-extra: изображение для Core CLR и собственного AOT, включает tzdata, ICU и stdc++.
С точки зрения сценариев:
Изображения 8.0-jammy-chiseled являются основой для runtime и aspnet изображений одного тега. По умолчанию собственные приложения AOT могут использовать образ 8.0-jammy-chiseled-aot, так как он оптимизирован для размера. Приложения Native AOT и самодостаточные/одиночные приложения Core CLR, которым требуются функции глобализации, могут использовать 8.0-jammy-chiseled-extra.
Изображения Alpine и Mariner используют ту же схему.
Заметка
Debian и Ubuntu (не чиселированные) runtime-deps образы не имеют нескольких вариантов.
Собственные образы контейнеров AOT
Нативные образы AOT публикуются в репозиторий SDK и снабжены уникальным суффиксом -aot. Эти образы позволяют создавать собственные приложения AOT. Они создаются для дистрибутивов с совпадающими изображениями runtime-deps:*-aot. Эти изображения являются большими, как правило, в два раза больше обычных образов пакета SDK.
Изображения AOT публикуются для:
- Альпийский
- Моряк
- Убунту
Для получения дополнительной информации см. развертывание Native AOT.
Репозитории Центра Docker
Все официальные образы Microsoft для .NET публикуются в организации Docker Hub microsoft-dotnet. Рассмотрим следующие репозитории.
стабильные репозитории образов .NET:
| Репозиторий изображений | Образ |
|---|---|
| SDK | mcr.microsoft.com/dotnet/sdk |
| aspnet | mcr.microsoft.com/dotnet/aspnet |
| среды выполнения | mcr.microsoft.com/dotnet/runtime |
| зависимости времени выполнения | mcr.microsoft.com/dotnet/runtime-deps |
| монитор | mcr.microsoft.com/dotnet/monitor |
| панель мониторинга aspire | mcr.microsoft.com/dotnet/aspire-dashboard |
| примеры | mcr.microsoft.com/dotnet/samples |
репозитории изображений .NET ночью:
| Репозиторий изображений | Образ |
|---|---|
| ночная aspnet | mcr.microsoft.com/dotnet/nightly/aspnet |
| ночной монитор | mcr.microsoft.com/dotnet/nightly/monitor |
| ночная среда выполнения-deps | mcr.microsoft.com/dotnet/nightly/runtime-deps |
| ночной среды выполнения | mcr.microsoft.com/dotnet/nightly/runtime |
| ночная версия SDK | mcr.microsoft.com/dotnet/nightly/sdk |
| ночной «Aspire» панели мониторинга | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
Репозитории изображений .NET Framework :
| Репозиторий изображений | Образ |
|---|---|
| фреймворк | mcr.microsoft.com/dotnet/framework |
| framework-aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
| среда выполнения фреймворка | mcr.microsoft.com/dotnet/framework/runtime |
| фреймворк-образцы | mcr.microsoft.com/dotnet/framework/samples |
| framework-sdk | mcr.microsoft.com/dotnet/framework/sdk |
| framework-wcf | mcr.microsoft.com/dotnet/framework/wcf |