Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O .NET fornece várias imagens de contêiner para cenários diferentes. Este artigo descreve os diferentes tipos de imagens e como elas são usadas. Para obter mais informações sobre as imagens oficiais, confira o repositório Docker Hub: Microsoft .NET.
Esquema de marcação
A partir do .NET 8, as imagens de contêiner são mais pragmáticas em como são diferenciadas. As seguintes características são usadas para diferenciar imagens:
- O TFM (Moniker da Estrutura de Destino) do aplicativo.
- O sistema operacional, a versão e a arquitetura.
- O tipo de imagem (por exemplo,
runtime,aspnet,sdk). - A variante da imagem (por exemplo,
*-distroless,*-chiseled). - O recurso de imagem (por exemplo,
*-aot,*-extra).
Imagens otimizadas para tamanho
As imagens a seguir se concentram em resultar no menor tamanho de imagem possível:
- Alpino
- Mariner sem distribuição
- Ubuntu cinzelado
Essas imagens são menores, pois não incluem dependências de globalização, como ICU ou tzdata. Essas imagens funcionam apenas com aplicativos configurados para o modo invariável de globalização. Para configurar um aplicativo para globalização invariável, adicione a seguinte propriedade ao arquivo de projeto:
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
Dica
As imagens do SDK não são produzidas para tipos de imagem *-distroless ou *-chiseled. As imagens compostas são a menor oferta do aspnet para o Core CLR.
Imagens adequadas para globalização
Os aplicativos conteinerizados que exigem a globalização aumentam o tamanho da imagem, pois exigem dependências de globalização. As imagens Ubuntu e Debian já possuem o ICU e o tzdata instalados.
A dependência do tzdata foi adicionada às seguintes imagens:
runtime-deps:8.0-jammyruntime-deps:8.0-bookworm-slim
Essa tática de globalização é usada pelas imagens runtime, aspnet e sdk com a mesma marca.
Importante
A adição do tzdata às imagens do Debian Bookworm não tem efeito prático, a menos que haja uma atualização para o tzdata (ainda não incluída no Debian), momento em que as imagens do .NET incluirão um tzdata mais recente.
Alguns pacotes ainda são opcionais, como Kerberos, LDAP e msquic. Esses pacotes são necessários apenas em cenários de nicho.
Imagens baseadas em cenário
As imagens runtime-deps têm um valor significativo, especialmente porque incluem um usuário padrão e definições de porta. Elas são convenientes de usar em cenários de AOT nativo e autônomos. No entanto, apenas fornecer imagens runtime-deps que são necessárias para as imagens runtime e sdk não é suficiente para proporcionar todos os cenários imagináveis ou gerar imagens ideais.
A necessidade de runtime-deps se estende também aos tipos nativos de imagem AOT, *-distrolesse *-chiseled. Para cada sistema operacional, três variantes de imagem são fornecidas (todas em runtime-deps). Considere o exemplo a seguir usando imagens *-chiseled:
-
8.0-jammy-chiseled: imagens para o Core CLR, sem o tzdata ou o ICU. -
8.0-jammy-chiseled-aot: imagens para o AOT nativo, sem o tzdata, o ICU ou o stdc++. -
8.0-jammy-chiseled-extra: imagem para o Core CLR e o AOT nativo, que inclui tzdata, ICU e stdc++.
Em termos de cenários:
As imagens 8.0-jammy-chiseled são a base para as imagens runtime e aspnet da mesma etiqueta. Por padrão, os aplicativos AOT nativos podem usar a imagem 8.0-jammy-chiseled-aot, pois ela é otimizada para tamanho. Os aplicativos AOT nativo e os aplicativos de arquivo único/autônomos do Core CLR que exigem a funcionalidade de globalização podem usar o 8.0-jammy-chiseled-extra.
As imagens Alpine e Mariner usam o mesmo esquema.
Nota
As imagens runtime-deps do Debian e do Ubuntu (não cinzeladas) não têm múltiplas variantes.
Imagens de contêiner do AOT nativo
As imagens AOT nativas são publicadas no repositório do SDK e marcadas com o sufixo -aot. Essas imagens permitem a criação de aplicativos AOT nativos. Elas são criadas para distribuições com imagens runtime-deps:*-aot correspondentes. Essas imagens são grandes, geralmente o dobro do tamanho de imagens regulares do SDK.
As imagens do AOT são publicadas para:
- Alpino
- Marujo
- Ubuntu
Para obter mais informações, consulte Implantação do AOT nativo.
Repositórios de hub do Docker
Todas as imagens oficiais da Microsoft para .NET são publicadas na organização microsoft-dotnet do Docker Hub. Considere os repositórios a seguir.
Repositórios de imagens estáveis do .NET:
| Repositório de imagem | Imagem |
|---|---|
| sdk | mcr.microsoft.com/dotnet/sdk |
| aspnet | mcr.microsoft.com/dotnet/aspnet |
| Runtime | mcr.microsoft.com/dotnet/runtime |
| runtime-deps | mcr.microsoft.com/dotnet/runtime-deps |
| monitor | mcr.microsoft.com/dotnet/monitor |
| aspire-dashboard | mcr.microsoft.com/dotnet/aspire-dashboard |
| Amostras | mcr.microsoft.com/dotnet/samples |
Repositórios de imagens do .NET Nightly:
| Repositório de imagem | Imagem |
|---|---|
| nightly-aspnet | mcr.microsoft.com/dotnet/nightly/aspnet |
| monitor noturno | mcr.microsoft.com/dotnet/nightly/monitor |
| nightly-runtime-deps | mcr.microsoft.com/dotnet/nightly/runtime-deps |
| nightly-runtime | mcr.microsoft.com/dotnet/nightly/runtime |
| nightly-sdk | mcr.microsoft.com/dotnet/nightly/sdk |
| nightly-aspire-dashboard | mcr.microsoft.com/dotnet/nightly/aspire-dashboard |
Repositórios de imagens do .NET Framework:
| Repositório de imagem | Imagem |
|---|---|
| estrutura | mcr.microsoft.com/dotnet/framework |
| framework-aspnet | mcr.microsoft.com/dotnet/framework/aspnet |
| framework-runtime | mcr.microsoft.com/dotnet/framework/runtime |
| exemplos de frameworks | mcr.microsoft.com/dotnet/framework/samples |
| framework-sdk | mcr.microsoft.com/dotnet/framework/sdk |
| framework-wcf | mcr.microsoft.com/dotnet/framework/wcf |