Бөлісу құралы:


На какую ОС нацеливаться с контейнерами .NET

Подсказка

Это фрагмент из электронной книги «Архитектура микрослужб .NET для контейнеризованных приложений .NET», доступной в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.

Архитектура микросервисов .NET для приложений .NET в контейнерах, миниатюра обложки электронной книги.

Учитывая разнообразие операционных систем, поддерживаемых Docker, и различия между .NET Framework и .NET 8, следует использовать определенную ОС и определенные версии в зависимости от используемой платформы.

Для Windows можно использовать Windows Server Core или Windows Nano Server. Эти версии Windows предоставляют разные характеристики (IIS в Windows Server Core в сравнении с автономным веб-сервером, например Kestrel в Nano Server), которые могут потребоваться .NET Framework или .NET 8 соответственно.

Для Linux доступно несколько дистрибутивов и поддерживаются в официальных образах Docker .NET (например, Debian).

На рис. 3-1 можно увидеть возможную версию ОС в зависимости от используемой платформы .NET.

Схема, показывающая, какую ОС следует использовать с контейнерами .NET.

Рис. 3-1. Операционные системы для целевых объектов в зависимости от версий платформы .NET

При развертывании устаревших приложений .NET Framework необходимо использовать Windows Server Core, который совместим с такими приложениями и службами IIS, но имеет более большие размеры образа. При развертывании приложений .NET 8 можно выбрать Windows Nano Server, который оптимизирован для облака, использует Kestrel и обладает меньшими размерами, поэтому запускается быстрее. Вы также можете ориентироваться на Linux, который совместим с Debian, Alpine и другими системами.

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

При добавлении имени образа в файл Dockerfile можно выбрать операционную систему и версию в зависимости от используемого тега, как показано в следующих примерах:

Изображение Комментарии
mcr.microsoft.com/dotnet/runtime:8.0 .NET 8 с несколькими архитектурами: поддерживает Linux и Windows Nano Server в зависимости от узла Docker.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0 с несколькими архитектурами: поддерживает Linux и Windows Nano Server в зависимости от узла Docker.
Образ aspnetcore имеет ряд оптимизаций для ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Только среда выполнения .NET 8 в дистрибутиве Linux Debian
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 Среда выполнения .NET 8 только в Windows Nano Server (Windows Server версии 1809)