O Artifact Registry é um serviço universal de gerenciamento de pacotes compatível com contêineres e outros formatos. Saiba mais sobre a transição do Container Registry para ter mais flexibilidade e controle sobre seus artefatos.

Como enviar e extrair imagens

Enviar (fazer upload) e extrair (fazer o download) as imagens são duas das tarefas mais comuns do Container Registry.

Para instruções sobre como listar, marcar e excluir imagens, consulte Como gerenciar imagens.

Antes de começar

Certifique-se de que você:

  1. ativou o Container Registry no projeto;

  2. instalou e configurou o Docker;

  3. verificou se você tem permissões para enviar e extrair imagens.

Como enviar uma imagem para um registro

Para enviar qualquer imagem local para o Container Registry, primeiro inclua uma tag com o nome do registro e, em seguida, envie a imagem.

A primeira imagem que você envia para um host multirregional cria o bucket de armazenamento para o nome do host no projeto do Google Cloud.

Marcar a imagem local com o nome do registro

  1. Determine o nome do registro:

    1. Escolha um nome de host, que especifica o local onde você armazenará a imagem.

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

      Esses locais correspondem às multirregiões para os buckets de armazenamento do Cloud Storage. Quando você envia uma imagem para um registro com um novo nome do host, o Container Registry cria um bucket de armazenamento no local multirregional especificado. Esse bucket é o armazenamento subjacente para o registro. Em um projeto, todos os registros com o mesmo nome de host compartilham um bucket de armazenamento.

      No console, o nome do host das imagens será listado em Local.

    2. Escolha um nome de imagem, que pode ser diferente em sua máquina local.

    3. Combine o nome do host, o código do projeto do Google Cloud Console e o nome da imagem:

      HOSTNAME/PROJECT-ID/IMAGE
      

      Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.

  2. Marque a imagem local com o nome do registro usando o comando:

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE
    

    em que SOURCE_IMAGE é o nome da imagem local ou do ID da imagem.

    Esse comando nomeia a imagem com o nome do registro e aplica a tag latest. Se você quiser aplicar uma tag diferente, use o comando:

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE:TAG
    

Enviar a imagem marcada para o Container Registry

O auxiliar de credencial do Docker é a maneira mais simples de configurar o Docker para autenticar diretamente com o Container Registry. Em seguida, use o comando docker para marcar, enviar e extrair imagens. Como alternativa, você pode usar as bibliotecas de cliente para gerenciar imagens de contêiner ou interagir diretamente com a API do Docker.

Use o comando a seguir para enviar a imagem marcada ao Container Registry:

docker push HOSTNAME/PROJECT-ID/IMAGE

Este comando envia a imagem que tem a tag latest. Se você quiser enviar uma imagem com uma tag diferente, use o comando:

docker push HOSTNAME/PROJECT-ID/IMAGE:TAG

Quando você envia uma imagem para um registro com um novo nome do host, o Container Registry cria um bucket de armazenamento no local multirregional especificado. Depois de enviar a imagem, você pode:

  • Acesse o Console do Cloud para ver o registro e a imagem.

  • Executar gcloud container images list-tags para visualizar a (s) tag (s) e o resumo gerado automaticamente:

    gcloud container images list-tags HOSTNAME/PROJECT-ID/IMAGE
    

    O resultado do comando é semelhante ao seguinte:

    DIGEST        TAGS        TIMESTAMP
    44bde...      test        2017-..-..
    

Como extrair imagens de um registro

Para extrair do Container Registry, use o comando:

docker pull HOSTNAME/PROJECT-ID/IMAGE:TAG

ou

docker pull HOSTNAME/PROJECT-ID/IMAGE@IMAGE_DIGEST

onde:

  • HOSTNAME está listado em Local no console É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • HOSTNAME é o ID do projeto do seu Console do Google Cloud. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.
  • IMAGE é o nome da imagem no Container Registry;
  • TAG é a tag aplicada à imagem. Em um registro, as tags são exclusivas de uma imagem;
  • IMAGE_DIGEST é o valor de hash sha256 do conteúdo da imagem. No Console do Cloud, clique na imagem específica para ver os metadados. O resumo é listado como Resumo da imagem.

Para receber o comando pull de uma imagem específica:

  1. Clique no nome de uma imagem para acessar o registro específico.

  2. No registro, marque a caixa ao lado da versão da imagem que você quer extrair.

  3. Clique em EXIBIR COMANDO PULL na parte superior da página.

  4. Copie o comando pull, que identifica a imagem usando a tag ou o resumo.

Próximas etapas