Visão geral do Container Registry

O Container Registry é um registro de imagem de contêiner particular executado no Google Cloud Platform. O Container Registry é compatível com o Docker Image Manifest V2 e com formatos de imagem OCI.

Muitas pessoas usam o Dockerhub como um registro central para armazenar imagens públicas do Docker. No entanto, para controlar o acesso às suas imagens, é necessário usar um registro privado como o Container Registry.

Acesse o Container Registry nos pontos de extremidade HTTPS seguros para executar pull, push e gerenciar imagens a partir de qualquer sistema, instância de VM ou do próprio hardware. Além disso, é possível usar a ferramenta de linha de comando auxiliar de credenciais do Docker e configurar o Docker para autenticar diretamente com o Container Registry.

Nome do registro

Registros no Container Registry são nomeados pelo host e pelo código do projeto. Para trabalhar com imagens (por exemplo, push, pull, delete), identifique a imagem usando o seguinte formato:

[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

ou

[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]

em que:

  • [HOSTNAME] é uma das quatro opções:

    • gcr.io hospeda as imagens nos Estados Unidos, mas o local pode mudar no futuro;
    • us.gcr.io hospeda a imagem nos Estados Unidos, em um intervalo de armazenamento separado das imagens hospedadas por gcr.io;
    • eu.gcr.io hospeda as imagens na União Europeia;
    • asia.gcr.io hospeda as imagens na Ásia.

    Quando você envia uma imagem por push para um registro com um novo nome de host, o Container Registry cria um intervalo de armazenamento no local multirregional especificado. Esse intervalo é o armazenamento subjacente para o registro. Esse local não é onde as imagens são armazenadas, não o seu local. Em um projeto, todos os registros com o mesmo nome de host compartilham um intervalo de armazenamento.

  • [PROJECT-ID] é o código do projeto do Console do Google Cloud Platform. Se esse código contiver dois pontos (:), veja projetos com escopo de domínio abaixo;

  • [IMAGE] é o nome da imagem. Ele pode ser diferente do nome local da imagem. No console do Google Cloud Platform, os registros do projeto são listados pelo nome da imagem. Cada repositório pode conter várias imagens com o mesmo nome. Por exemplo, ele pode conter versões diferentes de uma imagem denominada "quickstart-image".

  • Se você adicionar :[TAG] e @[IMAGE_DIGEST] no final, conseguirá distinguir uma versão específica da imagem, mas isso também é opcional. Se você não especificar uma tag ou o resumo, o Container Registry procurará a imagem com a tag padrão latest. Consulte Versões de imagens dentro de um registro a seguir.

Por exemplo, no guia de início rápido, o registro da imagem desse guia é gcr.io/[PROJECT-ID]. Para efetuar push e pull na imagem, use o formato:

gcr.io/[PROJECT-ID]/quickstart-image:tag1

em que [PROJECT-ID] é o código do projeto do Console do Google Cloud Platform.

Versões de imagens dentro de um registro

Um registro pode conter muitas imagens, e essas imagens podem ter versões diferentes. Para identificar uma versão específica da imagem em um registro, você pode especificar a respectiva tag ou resumo. Tags são exclusivas para uma imagem dentro de um registro. Os resumos são gerados automaticamente, são exclusivos de uma versão da imagem e têm o formato @[IMAGE_DIGEST], em que [IMAGE_DIGEST] é o valor de hash sha256 do conteúdo da imagem.

Por exemplo, no guia de rápido, para identificar uma versão específica da imagem:

  • adicione a tag da imagem:

    gcr.io/[PROJECT-ID]/quickstart-image:tag1
    
  • ou adicione o resumo da imagem:

    gcr.io/[PROJECT-ID]/quickstart-image@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
    

[PROJECT-ID] é o código do projeto do Console do Google Cloud Platform. Se esse código contiver dois pontos (:), veja projetos com escopo de domínio abaixo.

No console, na tela Imagens, a coluna Tags lista as tags da imagem. Clique na respectiva versão para ver os metadados, incluindo o Resumo da imagem.

Consulte Como incluir tags em imagens para saber como modificar tags.

Projetos com escopo de domínio

Se o projeto tiver escopo para seu domínio, o código do projeto incluirá o nome do domínio seguido por dois pontos (:). Devido ao modo como o Docker trata os dois pontos, é necessário substituir esse caractere por uma barra ao especificar um resumo de imagem no Container Registry. Identifique imagens nesses tipos de projetos usando o seguinte formato:

[HOSTNAME]/[DOMAIN]/[PROJECT]/[IMAGE]

Por exemplo, o projeto com código example.com:my-project poderia ter a seguinte imagem:

gcr.io/example.com/my-project/image-name

Nomes de registro como URLs

O URL https://[HOSTNAME]/[PROJECT-ID]/[IMAGE] é um URL desse registro no Console do GCP. Esses links podem ser acessados por qualquer usuário autenticado que tenha permissão para acessar o registro. Veja acima como definir o nome do registro.

Por exemplo, os seguintes URLs vinculam-se a registros públicos no Console do GCP:

Formatos de imagem de contêiner

O Container Registry é compatível com o Docker Image Manifest V2 e com formatos de imagem OCI.

Para mais informações, consulte Formatos de imagem de contêiner.

Controle de acesso

No Container Registry, as tags e os arquivos de camada para imagens de contêiner são armazenados em um intervalo do Cloud Storage no mesmo projeto que o registro. O acesso ao intervalo é configurado com as definições de gerenciamento de acesso e identidade (IAM, na sigla em inglês) do Cloud Storage.

Por padrão, os proprietários e editores do projeto têm permissões de push e pull para esse intervalo do projeto do Container Registry. Os leitores do projeto têm apenas permissão de pull.

Para mais informações, consulte Como configurar Controle de acesso.

Acesse os avisos de suspensão de uso e veja mais informações sobre planos que mudam metadados de imagem do Cloud Storage para uma base de dados de back-end de alto desempenho.

Autenticação

Use o comando gcloud docker -a para configurar uma autenticação do Docker com as credenciais do GCP. O Container Registry é compatível com métodos avançados de autenticação com uso de tokens de acesso ou arquivos de chaves JSON.

Auxiliar de credenciais do Docker

É necessário que o Docker tenha acesso ao Container Registry para executar push e pull de imagens. Use a ferramenta de linha de comando auxiliar de credenciais do Docker para configurar as credenciais do Container Registry para uso com o Docker.

A ferramenta auxiliar de credenciais recebe as credenciais do Container Registry automaticamente ou de um local especificado usando um sinalizador --token-source. Em seguida, ela grava as credenciais no arquivo de configuração do Docker. Dessa maneira, é possível usar a ferramenta de linha de comando docker do Docker para interagir diretamente com o Container Registry.

Para mais informações, consulte Autenticação avançada.

Conta do serviço do Container Registry

Quando você ativa a Container Registry API, o Container Registry adiciona ao seu projeto uma conta de serviço com o seguinte nome:

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

Essa conta de serviço foi criada especificamente para que o Container Registry possa executar as tarefas do serviço no seu projeto. O Google é proprietário dessa conta, mas ela é específica do seu projeto e está listada nas seções "Contas de serviço" e "IAM" do Console do GCP.

Se você excluir essa conta de serviço ou alterar suas permissões, alguns recursos do Container Registry não funcionarão corretamente. Você não deve modificar papéis nem excluir a conta.

Espelhamento

O registro mirror.gcr.io é um espelho global do Container Registry nos repositórios oficiais do Docker Hub.

Usar o espelhamento pode acelerar a execução de pulls para repositórios do Docker Hub. Quando você usa o mirror.gcr.io, o cliente tenta primeiro executar pull de imagens oficiais do Docker Hub do espelhamento do Container Registry.

Para mais informações, consulte Como usar o Container Registry e o espelhamento do Docker Hub.

Notificações

Use o Cloud Pub/Sub para receber notificações sobre mudanças nas imagens de contêiner.

Para mais informações, consulte Como configurar notificações do Cloud Pub/Sub.

Como usar o Container Registry com o GCP

As instâncias do Compute Engine podem executar push e pull de imagens do Container Registry com base em escopos do Cloud Storage nas instâncias. Consulte Como usar o Container Registry com o GCP.

As imagens armazenadas no Container Registry podem ser implantadas no ambiente flexível do App Engine.

Integrações de ferramenta de entrega contínua

O Container Registry trabalha com diversos sistemas de entrega contínua conhecidos.

Como usar o Container Registry com soluções de terceiros

Durante o desenvolvimento de aplicativos, pode ser necessário usar o gerenciamento de clusters, a integração contínua de terceiros ou soluções que não fazem parte do GCP. O Content Registry pode ser integrado com esses serviços externos.

No entanto, é possível que a solução externa não ofereça acesso à ferramenta de linha de comando gcloud para realizar a autenticação. Nesse caso, use o docker login para fazer a autenticação diretamente com o Container Registry. Para mais informações, consulte Autenticação avançada.

Algumas soluções de terceiros, como Kubernetes, dispõem de documentação sobre a integração com o Container Registry.

Para a lista completa de soluções de terceiros que podem ser integradas ao Container Registry, consulte Integrações de ferramenta de entrega contínua.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…