Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсказка
Это фрагмент из электронной книги «Архитектура микрослужб .NET для контейнеризованных приложений .NET», доступной в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.
Учитывая разнообразие операционных систем, поддерживаемых 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.
Рис. 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) |