Como enviar e extrair imagens

Nesta página, descrevemos como enviar e extrair imagens, duas das tarefas mais comuns realizadas com o Container Registry. Para enviar uma nova imagem ao Container Registry, primeiro você precisa marcá-la com o nome do registro, conforme descrito abaixo.

Para começar a usar o Container Registry, veja o guia de início rápido.

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

Antes de começar

Certifique-se de que você:

  1. Instalou a versão mais recente do SDK do Cloud, que inclui a ferramenta de linha de comando gcloud.

  2. Ativou o faturamento do projeto.

  3. Instalou o Docker. É necessária a versão 18.03 ou mais recente se você quiser usar o auxiliar de credenciais do gcloud para autenticação (recomendado).

    Se você estiver usando um sistema operacional baseado em Linux, como Ubuntu ou Debian, adicione seu nome de usuário ao grupo docker para executar o Docker sem usar sudo:

    sudo usermod -a -G docker ${USER}

    Saia e acesse novamente para a mudança de filiação ao grupo fazer efeito. Se estiver usando uma máquina virtual, talvez seja necessário reiniciar a máquina virtual para a mudança fazer efeito;

  4. Tem permissões para enviar e extrair do registro.

  5. Configurou o Docker para usar o gcloud como auxiliar de credencial ou está usando outro método de autenticação. Para usar o gcloud como auxiliar de credenciais, execute o comando:

    gcloud auth configure-docker
    

Como enviar uma imagem para um registro

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

Marcar a imagem local com o nome do registro

  1. Determine o nome do registro:

    1. Escolha um nome do host que especifica a região do armazenamento do registro. Essa região não é seu local, mas o local em que as imagens serão armazenadas. Por exemplo, se você estiver na Austrália, talvez convenha usar o host na Ásia.

      As quatro opções são:

      • 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.

      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 ID do projeto do Console do Google Cloud Platform 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

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

docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]

Esse comando envia a imagem com a tag latest. Para enviar uma imagem que tenha 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 intervalo de armazenamento no local multirregional especificado. Depois de enviar a imagem, você poderá:

  • acessar o console do GCP para ver o registro e a imagem;

  • executar gcloud container images list-tags para ver uma ou mais tags da imagem 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]

em que:

  • [HOSTNAME] está listado em Local no console como uma destas quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io;
  • [PROJECT-ID] é o ID do projeto do Console do Google Cloud Platform. Caso o ID 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, clique na imagem específica para ver os respectivos 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

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

Enviar comentários sobre…

Documentação do Container Registry