Imagens de contêiner do .NET Core agora publicadas no Registro de Contêiner da Microsoft

Agora estamos publicando imagens de contêiner do .NET Core no Microsoft Container Registry (MCR) . Também fizemos outras alterações nas imagens que publicamos, descritas neste post.


Importante: Você precisará alterar as instruções FROM nos arquivos do Dockerfile e nos comandos docker pull como resultado dessas alterações. As referências 3.0 precisam ser alteradas agora. A maioria dos usos 1.xe 2.x podem ser alterados com o tempo. O novo esquema de tags é descrito nesta postagem e é fornecido no repositório microsoft-dotnet-core , nossa nova casa no Docker Hub.


Resumo das mudanças:


  • As imagens do .NET Core agora são publicadas no Microsoft Container Registry.
  • As atualizações continuarão a ser publicadas no Docker Hub, para .NET Core 1.xe 2.x.
  • O .NET Core 3.0 será publicado apenas no MCR.
  • As imagens do Nano Server 2016 não são mais suportadas ou publicadas.

imagem

Este artigo em nosso blog .

MCR (Registro de Contêiner da Microsoft)


As equipes da Microsoft estão agora publicando imagens de contêiner no MCR . Há dois motivos principais para essa alteração:


  • Podemos estabelecer o MCR como a fonte oficial de imagens de contêiner fornecidas pela Microsoft e promover e distribuir essas imagens com mais facilidade para vários serviços de contêiner, como Docker Hub e Red Hat OpenShift.
  • Podemos usar o Microsoft Azure como uma rede de distribuição de conteúdo global (CDN) para fornecer imagens de contêiner fornecidas pela Microsoft a partir de locais mais próximos a você. Isso significa que as imagens das suas embalagens serão mais rápidas e terão maior confiabilidade em muitos casos.

Do ponto de vista arquitetural, o MCR é um serviço replicado globalmente que lida com solicitações de manifesto de imagem. Ele usa o serviço CDN do Azure para solicitações de camada de imagem. Essa separação não é observável com o docker pull , mas é fácil ver quando você inspeciona as imagens do .NET Core com curvatura . O uso de recursos replicados globalmente ajuda a demonstrar nosso compromisso em fornecer uma ótima experiência para usuários de contêineres em todo o mundo.


Continuando a oferecer suporte ao Docker Hub


Continuaremos mantendo as páginas de repo Docker Hub para que você possa descobrir e aprender sobre imagens do .NET Core . Os URLs do site do Docker Hub que você usou para os repositórios da Microsoft continuarão funcionando e serão encaminhados para locais atualizados no Docker Hub.


Você usará e verá o MCR como o back-end de armazenamento para imagens de contêiner da Microsoft, mas a maneira principal de aprender sobre imagens e tags de contêiner da Microsoft será através de um hub ou site de contêiner, que para muitos usuários continuará sendo o Docker Hub.


As imagens existentes do Docker Hub serão mantidas como estão. De fato, continuaremos atualizando o repo Microsoft / dotnet existente, conforme descrito mais adiante neste post.


As imagens do .NET Core estão no MCR


Começamos a publicar imagens no MCR em fevereiro de 2019, começando com o repo "noturno" do .NET Core . No início de março, também transferimos o repositório .NET Core .


No Docker Hub, tivemos um repositório muito grande que serviu quatro tipos de imagem para quatro distribuições de sistema operacional e três tipos de CPU. Esse amplo conjunto de tags criado para nomes de tags muito longos e arquivos README ainda mais longos. Decidimos aproveitar esta oportunidade para re-fatorar o .NET Core em vários repositórios , um para cada tipo de imagem. Também adicionamos um "repositório de produtos" que agrupa todos os nossos repositórios.


Os novos repositórios seguem:



Nota: O .NET Core 2.0 é EOL (fim da vida útil), portanto, não estará disponível no MCR, apenas no Docker Hub, como imagens não suportadas. Você deseja migrar para o .NET Core 2.1, que é uma versão LTS (Suporte a Longo Prazo) .


Atualizar tags de imagem do .NET Core


Os exemplos a seguir mostram como são as novas seqüências de tags docker pull para o .NET Core. Eles são mostrados como docker pull , mas as mesmas strings precisam ser usadas nos arquivos Dockerfile para instruções FROM .


Todos esses exemplos têm como alvo o .NET Core 2.1, mas o mesmo padrão é usado em qualquer versão suportada do .NET Core:


  • SDK: docker pull mcr.microsoft.com/dotnet/core/sdk:2.1
  • Tempo de execução do ASP.NET Core: docker pull mcr.microsoft.com/dotnet/core/aspnet:2.1
  • .NET Core Runtime: docker pull mcr.microsoft.com/dotnet/core/runtime:2.1
  • Dependências do .NET Core Runtime: docker pull mcr.microsoft.com/dotnet/core/runtime-deps:2.1

O exemplo a seguir demonstra como uma instrução FROM se parece com os novos repositórios de MCR, usando o dotnet/core/sdk como exemplo:


 FROM mcr.microsoft.com/dotnet/core/sdk:2.1 

Se você usa o Alpine, por exemplo, as tags são facilmente estendidas para incluir o Alpine, usando o dotnet/core/runtime como exemplo:


 FROM mcr.microsoft.com/dotnet/core/runtime:2.1-alpine 

Você pode ver os exemplos do .NET Core Docker para ver como as seqüências de tags são usadas na prática.


Suporte contínuo para o Docker Hub


Publicamos imagens no Docker Hub há três ou quatro anos. É provável que existam milhares (se não milhões) de scripts e arquivos Dockerfiles que esperam imagens de contêiner .NET no Docker Hub. Conforme declarado acima, esses artefatos continuarão funcionando como estão.


Publicamos várias formas de tags que oferecem vários níveis de conveniência e consistência. Essas diferenças se baseiam no grau em que os números de versão são especificados, desde completamente especificados até inexistentes. Os exemplos de tags a seguir demonstram as várias formas de tags, do menos ao mais específico:


  • latest
  • 2.2-runtime
  • 2.1.6-sdk

Continuaremos publicando imagens para os dois primeiros formulários de tags (versões sem versão e duas partes) pelo tempo de vida suportado das versões associadas. Não publicaremos nenhuma nova versão em três partes (como o último exemplo) no Docker Hub, mas apenas no MCR. Esperamos que a maioria dos scripts e arquivos do Dockerfile use uma das duas primeiras formas de tags ou seja atualizada manualmente para adotar tags de três partes em alguma cadência regular. Se forem atualizadas manualmente, poderão ser atualizadas manualmente para obter imagens do MCR.


Imagens do .NET Core 3.0


A mudança para o MCR está ocorrendo no meio da versão .NET Core 3.0, que nos deu a opção de criar somente .NET Core 3.0 MCR. Isso torna nossa abordagem para o MCR for .NET Core 3.0 diferente das outras versões suportadas. Publicamos inicialmente as imagens do .NET Core 3.0 Preview no Docker Hub. A partir do .NET Core 3.0 Preview 3 , as imagens do .NET Core 3.0 serão publicadas apenas no MCR. É importante que os usuários do .NET Core 3.0 façam a transição para o MCR em breve.


A seguir, exemplos de seqüências de tags do .NET Core 3.0, para ajudá-lo a migrar para o MCR:


  • SDK: docker pull mcr.microsoft.com/dotnet/core/sdk:3.0
  • ASP.NET Core Runtime: docker pull mcr.microsoft.com/dotnet/core/aspnet:3.0
  • .NET Core Runtime: docker pull mcr.microsoft.com/dotnet/core/runtime:3.0
  • Dependências do .NET Core Runtime: docker pull mcr.microsoft.com/dotnet/core/runtime-deps:3.0

O exemplo a seguir demonstra como é uma instrução FROM para o .NET Core 3.0 no MCR, usando o dotnet/core/runtime como exemplo:


 FROM mcr.microsoft.com/dotnet/core/runtime:3.0 

As imagens do .NET Core 3.0 Preview 1 e Preview 2 permanecerão disponíveis no Docker Hub, para tags de versão em três partes. Para as visualizações 1 e 2, também publicamos tags de versão em duas partes, como 3.0-sdk e 3.0-runtime . Estávamos preocupados com o fato de alguns usuários verem as tags de versão em duas partes do .NET Core 3.0 no Docker Hub e acreditamos que essas imagens eram suportadas e seriam atualizadas no futuro. Eles não serão. Para atenuar isso, excluímos as tags de versão em duas partes do 3.0 no Docker Hub. Essa abordagem nos permite comunicar claramente, durante o período de visualização, que todos precisam mudar para o MCR para obter imagens 3.0 o mais rápido possível. Pedimos desculpas se essa alteração afetou você negativamente.


As visualizações do Visual Studio 2019 usam as tags 3.0 de duas partes que foram excluídas. Os usuários devem atualizar seus arquivos Dockerfile para garantir que seus projetos sejam construídos corretamente. Fornecemos um Dockerfile de exemplo que fornece as instruções FROM corretas para projetos do .NET Core 3.0 ASP.NET Core no Visual Studio 2019.


Imagens do Nano Server 2016


O Nano Server 2016 não é mais suportado pela equipe do Windows e eles não estão mais publicando imagens de contêiner atualizadas para essa versão. Como resultado, paramos de publicar imagens do Nano Server 2016 no Docker Hub e no MCR.


Isso afeta as tags de imagem do .NET Core de várias maneiras diferentes:


  • As tags de manifesto (AKA “ multi-arch ”) não incluem mais uma entrada para o Nano Server 2016. Isso significa que tags de manifesto como 2.1-sdk não funcionarão mais no Windows Server 2016, Nano Server 2016 ou Windows 10 1607. Se você precisar para ainda usar imagens baseadas no Nano Server 2016 (mesmo que não sejam mais suportadas), você precisará usar tags que incluem a versão do Windows (essas são tags não manifestas), por exemplo mcr.microsoft.com/dotnet/core/runtime:2.1-nanoserver-sac2016 .
  • As imagens do .NET Core 2.xe 3.0 são suportadas e estão disponíveis para todas as versões suportadas do Nano Server a partir da versão 1709. Isso significa que as marcas de manifesto 2.xe 3.0 podem ser usadas no Windows 10, versão 1709+ e Windows Server , versão 1709+. Você também pode usar tags não manifestas para essas versões também.
  • Produzimos apenas imagens do Nano Server, versão 1809, para o .NET Core 1.x. Anteriormente, produzíamos apenas imagens do Nano Server, versão 2016, para o .NET Core 1.x. Você usaria uma marca de manifesto (como 1.1-runtime ou 1.1 ) ou uma nanoserver-sac2016 para obter essas imagens. Você pode obter as novas imagens do .NET Core 1.x Nano Server, versão 1809, usando uma marca de manifesto ou uma marca nanoserver-1809 . Essas tags são suportadas apenas no Windows 10, versão 1809 e Windows Server 2019

As imagens do .NET Core para o Nano Server 2016 ainda estão disponíveis no Docker Hub e no MCR e não serão excluídas. Você pode continuar a usá-los, mas eles não são suportados e não receberão novas atualizações. Se você precisar fazer isso e usar tags de manifesto usadas anteriormente, como 1.1-sdk , agora poderá usar as seguintes tags MCR (as variantes do Docker Hub são semelhantes):


  • 2.2.2-nanoserver-sac2016 , 2.2-nanoserver-sac2016
  • 2.1.8-nanoserver-sac2016 , 2.1-nanoserver-sac2016
  • 1.1.11-nanoserver-sac2016 , 1.1-nanoserver-sac2016
  • 1.0.14-nanoserver-sac2016 , 1.0-nanoserver-sac2016

Observe que o .NET Core 1.x ficará sem suporte em 27 de junho de 2019 . Recomendamos que os usuários do .NET Core 1.x migrem para o .NET Core 2.1.


Na DockerCon 2019


Estamos enviando alguns membros da equipe para o DockerCon 2019 . Entre em contato conosco @ dotnet@microsoft.com se desejar se reunir e conversar sobre como você usa o .NET e o Docker juntos. Gostaríamos muito de ouvir sobre sua abordagem e quaisquer desafios que você enfrenta ou alterações que gostaria que fizéssemos.


Estamos participando do DockerCon há alguns anos e sempre gostamos do show. É uma boa oportunidade para aprender as novas maneiras pelas quais as pessoas estão usando contêineres e também quais novos recursos estão por vir. Como exemplo, ainda estamos aguardando o suporte oficial do BuildKit . É o recurso que mais queremos ver se tornar parte do conjunto de recursos padrão do Docker.


Encerramento


Continuamos melhorando a experiência usando imagens de contêiner do .NET Core da Microsoft. A publicação de imagens de contêiner do .NET Core no MCR será uma melhoria, pois o MCR é replicado globalmente.


As imagens de contêiner do .NET Framework ainda não estão disponíveis no MCR. Em breve, iremos transferi-los para o MCR.


Consulte Usando o .NET e o Docker juntos, se você quiser saber mais sobre o uso do Docker.

Source: https://habr.com/ru/post/pt444010/


All Articles