Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подсказка
Это фрагмент из электронной книги «Архитектура микрослужб .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) |