Compartir a través de


Qué sistema operativo se va a establecer como destino con contenedores de .NET

Sugerencia

Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico 'Arquitectura de microservicios de .NET para aplicaciones .NET contenedorizadas'.

Dada la diversidad de sistemas operativos compatibles con Docker y las diferencias entre .NET Framework y .NET 8, debe tener como destino un sistema operativo específico y versiones específicas en función del marco que use.

Para Windows, puede usar Windows Server Core o Windows Nano Server. Estas versiones de Windows proporcionan características diferentes (IIS en Windows Server Core frente a un servidor web autohospedado como Kestrel en Nano Server) que podría necesitar .NET Framework o .NET 8, respectivamente.

Para Linux, hay varias distribuciones disponibles y se admiten en imágenes oficiales de Docker de .NET (como Debian).

En la figura 3-1, puede ver la posible versión del sistema operativo en función de .NET Framework usada.

Diagrama que muestra qué sistema operativo se va a usar con qué contenedores de .NET.

Figura 3-1. Sistemas operativos de destino en función de las versiones de .NET Framework

Al implementar aplicaciones heredadas de .NET Framework, tiene que elegir como destino Windows Server Core, que es compatible con aplicaciones heredadas e IIS, pero tiene una imagen más grande. Al implementar aplicaciones de .NET 8, puede tener como destino Windows Nano Server, que está optimizado para la nube, usa Kestrel y es más pequeño e inicia más rápido. También puede tener como destino Linux, que es compatible con Debian, Alpine y otros.

También puede crear su propia imagen de Docker en los casos en los que quiera usar una distribución de Linux diferente o donde quiera una imagen con versiones no proporcionadas por Microsoft. Por ejemplo, puede crear una imagen con ASP.NET Core que se ejecuta en .NET Framework tradicional y Windows Server Core, que es un escenario no tan común para Docker.

Al agregar el nombre de la imagen al archivo Dockerfile, puede seleccionar el sistema operativo y la versión en función de la etiqueta que use, como en los ejemplos siguientes:

Imagen Comentarios
mcr.microsoft.com/dotnet/runtime:8.0 Arquitectura múltiple de .NET 8: admite Linux y Windows Nano Server en función del host de Docker.
mcr.microsoft.com/dotnet/aspnet:8.0 La arquitectura múltiple de ASP.NET Core 8.0: es compatible con Linux y Windows Nano Server en función del host de Docker.
La imagen aspnetcore tiene algunas optimizaciones para ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Solo entorno de ejecución de .NET 8 en una distribución de Linux Debian
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 Entorno de ejecución exclusivamente de .NET 8 en Windows Nano Server (versión 1809 de Windows Server)