Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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.
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) |