Selección del sistema operativo de destino con contenedores de .NET
Artículo
20/03/2023
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.
Teniendo en cuenta la diversidad de sistemas operativos que admite Docker y las diferencias entre .NET Framework y .NET 8, debe escoger un sistema operativo de destino específico y versiones concretas según el marco que utilice.
Para Windows, puede usar Windows Server Core o Nano Server de Windows. Estas versiones de Windows proporcionan diferentes características (IIS en Windows Server Core frente a un servidor web autohospedado, como Kestrel, en Nano Server) que .NET Framework o .NET 8, respectivamente, podrían necesitar.
Para Linux, hay varias distribuciones disponibles y compatibles en imágenes oficiales del Docker de .NET (por ejemplo, Debian).
En la figura 3-1, se observa la posible versión del sistema operativo en función de la versión de .NET Framework que se utilice.
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, es más pequeño y se 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 que quiera utilizar una distribución de Linux diferente o que quiera una imagen con las versiones no proporcionadas por Microsoft. Por ejemplo, puede crear una imagen con ASP.NET Core ejecutándose en los tradicionales .NET Framework y Windows Server Core, que no sería un escenario tan habitual para Docker.
Al agregar el nombre de imagen al archivo Dockerfile, puede seleccionar el sistema operativo y la versión dependiendo de la etiqueta que utilice, 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 de 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
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de
.NET
.NET
es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Las aplicaciones de microservicios se componen de servicios pequeños centrados en el cliente, escalables y con control de versiones independiente que se comunican entre sí mediante protocolos estándar e interfaces bien definidas. Cada microservicio normalmente encapsula lógica de negocios simple, que se puede escalar o reducir horizontalmente. Se puede probar, implementar y administrar el microservicio de forma independiente. Los equipos más pequeños desarrollan un microservicio en función de un escenario d