Quel système d’exploitation cibler avec les conteneurs .NET
Conseil
Ce contenu est un extrait du livre électronique « .NET Microservices Architecture for Containerized .NET Applications », disponible sur .NET Docs ou sous forme de PDF téléchargeable gratuitement et pouvant être lu hors ligne.
Compte tenu de la diversité des systèmes d’exploitation pris en charge par Docker et des différences entre .NET Framework et .NET 8, vous devez cibler le système d’exploitation et les versions spécifiques en fonction du framework que vous utilisez.
Pour Windows, vous pouvez utiliser Windows Server Core ou Windows Nano Server. Ces versions de Windows offrent des caractéristiques différentes (IIS dans Windows Server Core ou un serveur web auto-hébergé comme Kestrel dans Nano Server) qui peuvent être nécessaires à .NET Framework ou .NET 8, respectivement.
Pour Linux, plusieurs distributions sont disponibles et prises en charge dans les images .NET Docker officielles (comme Debian).
La figure 3-1 indique la version du système d’exploitation à utiliser en fonction de la version de .NET Framework utilisée.
Figure 3-1. systèmes d’exploitation à cibler en fonction des versions de .NET Framework
Quand vous déployez des applications .NET Framework héritées, vous devez cibler Windows Server Core, compatible avec les applications héritées et IIS, dont l’image est cependant plus grande. Lorsque vous déployez des applications .NET 8, vous pouvez cibler Windows Nano Server, car il est optimisé pour le cloud, il utilise Kestrel, il est plus léger et il démarre plus rapidement. Vous pouvez également cibler Linux, prenant en charge Debian, Alpine et d’autres.
Vous pouvez aussi créer votre propre image Docker si souhaitez utiliser une autre distribution Linux ou une image contenant des versions non fournies par Microsoft. Par exemple, vous pouvez créer une image avec ASP.NET Core s’exécutant sur le .NET Framework classique et Windows Server Core, ce qui n’est pas un scénario très courant pour Docker.
Au moment d’ajouter le nom de l’image à votre fichier Dockerfile, vous pouvez sélectionner le système d’exploitation et la version en fonction de la balise que vous utilisez, comme dans les exemples suivants :
Image | Commentaires |
---|---|
mcr.microsoft.com/dotnet/runtime:8.0 | Multi-architecture .NET 8 : prend en charge Linux et Windows Nano Server en fonction de l’hôte Docker. |
mcr.microsoft.com/dotnet/aspnet:8.0 | Multi-architecture ASP.NET Core 8.0 : prend en charge Linux et Windows Nano Server en fonction de l’hôte Docker. L’image aspnetcore a quelques optimisations pour ASP.NET Core. |
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim | Runtime uniquement .NET 8 sur distribution Linux Debian |
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 | Runtime uniquement .NET 8 sur Windows Nano Server (Windows Server version 1809) |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour