Contêineres, imagens e registros do Docker
Gorjeta
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Ao usar o Docker, um desenvolvedor cria um aplicativo ou serviço e empacota-o e suas dependências em uma imagem de contêiner. Uma imagem é uma representação estática do aplicativo ou serviço e sua configuração e dependências.
Para executar o aplicativo ou serviço, a imagem do aplicativo é instanciada para criar um contêiner, que será executado no host do Docker. Os contêineres são inicialmente testados em um ambiente de desenvolvimento ou PC.
Os desenvolvedores devem armazenar imagens em um registro, que atua como uma biblioteca de imagens e é necessário ao implantar em orquestradores de produção. O Docker mantém um registro público por meio do Docker Hub, outros fornecedores fornecem registros para diferentes coleções de imagens, incluindo o Azure Container Registry. Como alternativa, as empresas podem ter um registro privado local para suas próprias imagens do Docker.
A Figura 2-4 mostra como as imagens e os registros no Docker se relacionam com outros componentes. Ele também mostra as várias ofertas de registro de fornecedores.
Figura 2-4. Taxonomia de termos e conceitos do Docker
O registro é como uma estante onde as imagens são armazenadas e disponíveis para serem extraídas para a construção de contêineres para executar serviços ou aplicativos web. Existem registros privados do Docker no local e na nuvem pública. O Docker Hub é um registro público mantido pelo Docker, juntamente com o Docker Trusted Registry, uma solução de nível empresarial, o Azure oferece o Registro de Contêiner do Azure. AWS, Google e outros também têm registros de contêineres.
Colocar imagens em um registro permite armazenar bits de aplicativos estáticos e imutáveis, incluindo todas as suas dependências em um nível de estrutura. Essas imagens podem então ser versionadas e implantadas em vários ambientes e, portanto, fornecer uma unidade de implantação consistente.
Registros de imagens privadas, hospedados no local ou na nuvem, são recomendados quando:
As suas imagens não devem ser partilhadas publicamente devido à confidencialidade.
Você deseja ter latência de rede mínima entre suas imagens e o ambiente de implantação escolhido. Por exemplo, se seu ambiente de produção for a nuvem do Azure, você provavelmente deseja armazenar suas imagens no Registro de Contêiner do Azure para que a latência da rede seja mínima. Da mesma forma, se o ambiente de produção for local, convém ter um Registro Confiável do Docker local disponível na mesma rede local.