Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Sugestão
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Dada a diversidade de sistemas operacionais suportados pelo 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 estiver usando.
Para 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 para o .NET Framework ou o .NET 8, respectivamente.
Para Linux, várias distros estão disponíveis e são suportadas em imagens oficiais do .NET Docker (como o Debian).
Na Figura 3-1, você pode ver a possível versão do sistema operacional, dependendo do .NET Framework usado.
Figura 3-1. Sistemas operacionais de destino 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 Kestrel e é menor e inicia mais rapidamente. Você também pode focar em Linux, com suporte a Debian, Alpine e outros.
Você também pode criar sua própria imagem do Docker nos casos em que deseja usar uma distro Linux diferente ou em que deseja uma imagem com versões não fornecidas pela Microsoft. Por exemplo, você pode criar uma imagem com 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 tag usada, como nos exemplos a seguir:
| Imagem | Observações |
|---|---|
| mcr.microsoft.com/dotnet/runtime:8.0 | .NET 8 multi-arquitetura: Suporta Linux e Windows Nano Server dependendo do host Docker. |
| mcr.microsoft.com/dotnet/aspnet:8.0 | ASP.NET Core 8.0 multi-arquitetura: Suporta Linux e Windows Nano Server, dependendo do host Docker. A imagem aspnetcore tem algumas otimizações para ASP.NET Core. |
| mcr.microsoft.com/dotnet/aspnet:8.0-bullseye-slim | .NET 8 somente tempo de execução na distro Linux Debian |
| mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 | Somente tempo de execução do .NET 8 no Windows Nano Server (Windows Server versão 1809) |