Conceitos de contêiner

Este documento apresenta os principais conceitos relacionados a contêineres, incluindo registros, repositórios e artefatos. Algumas informações básicas sobre como os conceitos se aplicam ao Artifact Registry e ao Container Registry também está incluído.

Registros

Um registro armazena e distribui imagens de contêiner e artefatos organizados por em repositórios. Um registro pode conter um único repositório ou múltiplos repositórios, e podem ser públicos ou privados.

Serviços de registro, como o Docker Hub e o Artifact Registry, oferecem para criar repositórios públicos ou privados. Ao extrair imagens públicas, é importante entender as possíveis preocupações com segurança. Saiba mais gerenciamento de dependência para mais informações sobre vulnerabilidades monitorar e reduzir o consumo de dependências.

Os registros são organizados em repositórios que armazenam de imagens de contêiner. O Artifact Registry permite criar vários repositórios em um único projeto e associar um objeto específico região ou multirregião com cada repositório. Os repositórios relacionados podem ser agrupados por rótulos.

Repositórios

Imagens e artefatos com o mesmo nome, mas tags diferentes são organizadas em repositórios. Se nenhuma tag for especificada quando uma imagem for enviada para um repositório, a imagem recebe a tag latest. Se outra imagem for enviada Ao especificar uma tag, a tag latest é movida da imagem original para a mais recente. imagem, deixando a primeira sem uma tag. Recomendamos dar uma tag às versões diferente de latest.

O termo repositório nem sempre é usado de maneira consistente; no Artifact Registry é mais útil usar partes do caminho até a imagem para identificar o projeto, região ou multirregião e o nome da imagem junto com tag ou resumo do manifesto para identificar a versão correta.

Exemplo:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 é o local do repositório.
  • docker.pkg.dev é o nome do host dos repositórios do Docker.
  • PROJECT é o namespace criado pelo ID do projeto do Google Cloud.
  • quickstart-docker-repo é o namespace no projeto em que você armazena de imagens de contêiner. No Artifact Registry, essa parte do caminho é chamada de repositório de dados.
  • quickstart-image é o repositório para todas as versões de quickstart-image. e é geralmente chamada de imagem.
  • tag1 é a tag que especifica a versão da imagem.

Imagens

Os artefatos e as imagens podem ser armazenados no Artifact Registry. Um pode ser qualquer coisa: um arquivo de texto, uma imagem do Docker ou um gráfico do Helm, enquanto um normalmente se refere a uma imagem de contêiner. Imagens de contêiner são pacotes softwares que contêm todos os elementos necessários para serem executados em qualquer ambiente. Lida O que são contêineres para mais informações.

As imagens são enviadas ou carregadas para repositórios e extraídas ou transferidas por download dos repositórios. Para especificar a imagem e a versão corretas, e o artefato precisam ser especificados.

Exemplo:

docker pull us-west1-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-west1-docker.pkg.dev é o registro
  • /google-samples/containers/gke/ são o namespace e os subnamespaces; Em O google-samples do Artifact Registry é o projeto do Google Cloud e O containers é chamado de repositório do Artifact Registry.
  • hello-app é o nome do artefato.
  • :1.0 é a tag que especifica a versão do artefato a ser extraída.

Camadas

Imagens de contêiner armazenadas em repositórios são construídas de forma incremental usando camadas. Imagens diferentes podem usar algumas das mesmas camadas. As camadas são definidas de maneiras diferentes dependendo do tipo de imagem, por exemplo, cada instrução em um Dockerfile corresponde a uma camada na imagem Docker. Em um registro, com camadas comuns compartilham essas camadas, aumentando a eficiência do armazenamento. Por motivos de segurança, as camadas não são compartilhadas entre registros diferentes.

Quando você exclui uma imagem de contêiner, as camadas não são excluídas imediatamente. Camadas que não são referenciadas por imagens no registro são excluídas diariamente.

Tags

Os usuários adicionam tags ao enviar ou enviar uma imagem para um repositório para especificar a mais recente de uma imagem. Uma imagem pode ter uma ou várias tags ou nenhuma. Se você enviar uma imagem duas vezes com a mesma tag, ela será removida do da primeira imagem e movida para a segunda, deixando a primeira sem uma tag. O imagem sem tag ainda pode ser acessada por meio dos resumos do manifesto.

A tag latest é uma tag especial anexada quando as imagens são enviadas sem uma tag.

Exemplo:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

envia a imagem para hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

extrai a imagem hello-app:latest.

Quando uma imagem é enviada para um repositório com uma tag diferente de latest, a tag latest não é adicionada. Portanto, é possível a imagem latest para exibir as mudanças mais atualizadas. Recomendamos usando tags diferentes de latest para versões. Para mais informações sobre inclusão de tags imagens, saiba como marcar corretamente suas imagens.

Manifestos

Manifestos de imagem identificam e especificam de forma exclusiva as camadas dentro de cada imagem. Os manifestos são identificados por hashes SHA-256 exclusivos, chamados resumos de manifesto. Resumos de manifestos são mais confiáveis e seguros do que tags porque vários versões da mesma imagem podem ser enviadas à mesma tag, deixando algumas sem tags, enquanto cada imagem é especificada de forma exclusiva por seu resumo do manifesto.

Se você usa ferramentas para verificar ou analisar imagens, os resultados dessas ferramentas são apenas válido para a imagem digitalizada. Para garantir que você implante a imagem que foi digitalizado, não pode confiar na etiqueta porque a imagem referida pela etiqueta pode mudar.

Para saber mais sobre tags e manifestos específicos do Artifact Registry, leia Como gerenciar imagens e Como usar imagens de contêiner.

A seguir