Conceitos de contêiner

Com o Artifact Registry, é possível armazenar e organizar imagens de contêiner e outros artefatos em repositórios para gerenciar e implantar cargas de trabalho em ambientes. É possível usar camadas de imagem, tags e resumos de manifesto para controlar o controle de versões de imagens e gerenciar implantações.

Registros

Um registro armazena e distribui imagens e artefatos de contêiner organizados por nome em repositórios. Um registro pode conter um ou vários repositórios e ser público ou particular.

Serviços de registro, como o Docker Hub e o Artifact Registry, oferecem opções para criar repositórios públicos ou particulares. Ao extrair imagens públicas, é importante entender os possíveis problemas de segurança. Leia sobre o gerenciamento de dependências para mais informações sobre o monitoramento de vulnerabilidades e a redução da sua pegada de dependência.

Os registros são organizados em repositórios que armazenam imagens de contêiner individuais. Com o Artifact Registry, é possível criar vários repositórios em um único projeto e associar um local regional específico a cada repositório. Os repositórios relacionados podem ser agrupados por rótulos.

Repositórios do Artifact Registry e gerenciamento de imagens

Nos repositórios do Artifact Registry no formato Docker, é possível armazenar várias imagens de contêiner com nomes diferentes no mesmo repositório. Cada versão de uma imagem é identificada pelo resumo da imagem e pode ser associada a uma tag. As tags podem ser mutáveis ou imutáveis. Para mais informações sobre versões e tags de imagem do contêiner, consulte Versões de imagem do contêiner.

O Artifact Registry geralmente se refere a partes do caminho de uma imagem para identificar o projeto, o local regional e o nome da imagem, além da tag ou do resumo do manifesto para identificar a versão correta.

Exemplo:

docker push u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • u-france-east1 é o local do repositório.
  • docker.s3nsregistry.fr é o nome do host dos repositórios no formato Docker.
  • PROJECT é o namespace criado pelo seu Cloud de Confiance by S3NS ID do projeto.
  • quickstart-docker-repo é o namespace do seu projeto em que você armazena imagens. No Artifact Registry, essa parte do caminho é chamada de repositório.
  • quickstart-image é o nome de todas as versões de quickstart-image e geralmente é chamado de a imagem.
  • tag1 é a tag que especifica a versão da imagem.

Imagens

Artefatos e imagens podem ser armazenados no Artifact Registry. Um artefato pode ser qualquer coisa: um arquivo de texto, uma imagem do Docker ou um gráfico do Helm. Já uma imagem geralmente se refere a uma imagem de contêiner. As imagens de contêiner são pacotes de software que contêm todos os elementos necessários para serem executados em qualquer ambiente. Leia O que são contêineres? para mais informações.

As imagens são enviadas ou carregadas para repositórios e extraídas ou baixadas de repositórios. Para especificar a imagem e a versão corretas, é necessário informar o registro e o artefato exclusivos.

Para mais informações sobre nomes de repositórios e imagens no Artifact Registry, consulte Nomes de repositórios e imagens.

Camadas

As 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, as imagens com camadas comuns compartilham essas camadas, aumentando a eficiência do armazenamento. Por segurança, as camadas não são compartilhadas entre diferentes registros.

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

Tags

Os usuários adicionam tags ao enviar ou extrair uma imagem para um repositório para especificar a versão de uma imagem. Uma imagem pode ter uma ou várias tags ou nenhuma. Se você estiver usando tags mutáveis e enviar uma imagem duas vezes com a mesma tag, a tag será removida da primeira imagem e movida para a segunda, deixando a primeira imagem sem uma tag. A imagem sem tag ainda pode ser acessada usando os resumos do manifesto.

Se você estiver usando tags imutáveis, as seguintes ações não serão permitidas:

  • Excluir uma imagem marcada. A exclusão de imagens sem tag ainda é permitida.
  • Remova uma tag de uma imagem.
  • Envie uma imagem com uma tag que já está sendo usada por outra versão da imagem no repositório.

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

Exemplo:

docker push u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-app

envia a imagem para hello-app:latest

docker pull u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/hello-app

extrai a imagem hello-app:latest.

É importante observar que, quando uma imagem é enviada para um repositório com uma tag diferente de latest, a tag latest não é adicionada. Portanto, é possível que a imagem latest esteja desatualizada. Recomendamos usar tags diferentes de latest para lançamentos.

Manifestos

Os manifestos de imagem identificam e especificam de forma exclusiva as camadas em cada imagem. Os manifestos são identificados por hashes SHA-256 exclusivos chamados de resumos de manifesto. Resumos de manifesto são mais confiáveis e seguros do que tags porque, em repositórios com tags mutáveis, várias versões da mesma imagem podem ser enviadas para a mesma tag, deixando algumas imagens sem tags, enquanto cada imagem é especificada de maneira exclusiva pelo resumo do manifesto.

Se você usar ferramentas para verificar ou analisar imagens, os resultados serão válidos apenas para a imagem verificada. Para garantir a implantação da imagem que foi verificada, não é possível confiar na tag porque a imagem mencionada por ela pode mudar.

Para saber mais sobre manifestos e inclusão de tags específicos do Artifact Registry, leia Gerenciar imagens e Usar imagens de contêiner.

Pré-aquecimento de imagens

Para aplicativos sensíveis à latência que usam streaming de imagem, esperar que uma imagem seja extraída pela primeira vez em um novo nó ou instância, geralmente chamado de "inicialização a frio", pode causar atrasos indesejados. O pré-aquecimento permite iniciar explicitamente o download de imagens no cache do Image Streaming antes que elas sejam solicitadas. Esse processo ajuda a garantir que a imagem esteja disponível para entrega rápida quando o cluster do GKE a solicitar.

Para pré-aquecer imagens, use a API Artifact Registry. Para instruções, consulte Reduzir a latência com pré-aquecimento de imagens.

A seguir