Compartilhar via


Qual sistema operacional escolher como alvo com contêineres .NET

Dica

Esse conteúdo é um trecho do eBook, arquitetura de microsserviços do .NET para aplicativos .NET em contêineres, disponível em do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

miniatura da capa do eBook sobre arquitetura de microsserviços do .NET para aplicativos .NET em contêineres.

Considerando a diversidade de sistemas operacionais compatíveis com o Docker e as diferenças entre o .NET Framework e o .NET 8, você deve direcionar um sistema operacional específico e versões específicas, dependendo da estrutura que você está usando.

Para o Windows, você pode usar o Windows Server Core ou o Windows Nano Server. Essas versões do Windows fornecem características diferentes (IIS no Windows Server Core versus um servidor Web auto-hospedado como o Kestrel no Nano Server) que podem ser necessárias pelo .NET Framework ou pelo .NET 8, respectivamente.

Para Linux, várias distros estão disponíveis e têm suporte em imagens oficiais do .NET no Docker (como Debian).

Na Figura 3-1, você pode ver a possível versão do sistema operacional, dependendo da estrutura do .NET usada.

Diagrama mostrando qual sistema operacional usar com quais contêineres do .NET.

Figura 3-1. Sistemas operacionais a serem direcionados dependendo das versões do .NET Framework

Ao implantar aplicativos herdados do .NET Framework, você precisa ter como destino o Windows Server Core, compatível com aplicativos herdados e o IIS, mas ele tem uma imagem maior. Ao implantar aplicativos .NET 8, você pode direcionar o Windows Nano Server, que é otimizado para nuvem, usa o Kestrel e é menor e é iniciado mais rapidamente. Você também pode direcionar o Linux, oferecendo suporte a Debian, Alpine e outros.

Você também pode criar sua própria imagem do Docker em casos em que deseja usar uma distribuição do Linux diferente ou em que deseja uma imagem com versões não fornecidas pela Microsoft. Por exemplo, você pode criar uma imagem com o ASP.NET Core em execução no .NET Framework tradicional e no Windows Server Core, que é um cenário não tão comum para o Docker.

Ao adicionar o nome da imagem ao arquivo Dockerfile, você pode selecionar o sistema operacional e a versão, dependendo da marca usada, como nos exemplos a seguir:

Imagem Comentários
mcr.microsoft.com/dotnet/runtime:8.0 Várias arquiteturas do .NET 8: dá suporte ao Linux e ao Windows Nano Server, dependendo do host do Docker.
mcr.microsoft.com/dotnet/aspnet:8.0 ASP.NET Core 8.0 multiarquitetura: dá suporte ao Linux e ao Windows Nano Server, dependendo do host do Docker.
A imagem aspnetcore tem algumas otimizações para ASP.NET Core.
mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim Distribuição somente de runtime do .NET 8 no Linux Debian
mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 Somente runtime do .NET 8 no Windows Nano Server (Windows Server versão 1809)