Armazenar imagens de contêiner do Docker no Artifact Registry

O Artifact Registry fornece um único local para gerenciar pacotes privados e imagens de contêiner do Docker.

Neste guia de início rápido, você aprende a:

  • Criar um repositório particular do Docker no Artifact Registry
  • Configurar a autenticação
  • Enviar uma imagem para o repositório
  • Extrair a imagem do repositório

Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative a API Artifact Registry.

    Ative a API

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative a API Artifact Registry.

    Ative a API

Escolha um shell

Para concluir este guia de início rápido, use o Cloud Shell ou o shell local.

Cloud Shell
O Cloud Shell é um ambiente de shell para gerenciar recursos hospedados no Google Cloud. Ele vem pré-instalado com o Docker e a Google Cloud CLI, a principal interface de linha de comando do Google Cloud.
Shell local
Se preferir usar o shell local, instale o Docker e a CLI gcloud no ambiente.

Como iniciar o Cloud Shell

Para iniciar o Cloud Shell, execute os seguintes passos:

  1. Acesse o Console do Google Cloud.

    Console do Google Cloud

  2. Clique no botão Ativar o Cloud Shell:  .

Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console. Use esse shell para executar comandos gcloud.

Como configurar um shell local

Para instalar a CLI gcloud e o Docker, siga estas etapas:

  1. Instale a CLI da gcloud. Para atualizar uma instalação existente, execute o comando gcloud components update.

  2. Instale o Docker se ele ainda não estiver instalado.

  3. O Docker requer acesso com privilégios para interagir com registros. No Linux ou no Windows, adicione o usuário utilizado para executar comandos do Docker no grupo de segurança do Docker. Esta etapa não é necessária no MacOS porque o Docker Desktop é executado em uma máquina virtual como o usuário raiz.

    Linux

    O grupo de segurança do Docker é chamado de docker. Para adicionar seu nome de usuário, execute o seguinte comando:

    sudo usermod -a -G docker ${USER}
    

    Windows

    O grupo de segurança do Docker é chamado de docker-users. Para adicionar um usuário a partir do prompt de comando do administrador, execute o seguinte comando:

    net localgroup docker-users DOMAIN\USERNAME /add
    

    Em que

    • DOMAIN é seu domínio do Windows.
    • USERNAME é seu nome de usuário.
  4. 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;

  5. Para garantir que o Docker esteja ativo, execute o seguinte comando do Docker, que retorna a hora e a data atuais:

  6. docker run --rm busybox date
    

    A sinalização --rm exclui a instância do contêiner na saída.

Crie um repositório do Docker

Crie um repositório do Docker para armazenar a imagem de amostra deste guia de início rápido.

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Clique em add Criar repositório.

  3. Especifique quickstart-docker-repo como o nome do repositório.

  4. Escolha Docker como o formato e Standard como o modo.

  5. Em Tipo de local, selecione Região e escolha o local us-central1.

  6. Clique em Criar.

O repositório é adicionado à lista de repositórios.

gcloud

  1. Execute o seguinte comando para criar um novo repositório do Docker chamado quickstart-docker-repo no local us-central1 com a descrição "repositório do docker".

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-central1 --description="Docker repository" \
        --project=PROJECT
    

    em que PROJECT é o ID do projeto no Google Cloud.

  2. Execute o seguinte comando para verificar se o repositório foi criado.

    gcloud artifacts repositories list \
        --project=PROJECT
    

Para mais informações sobre os comandos do Artifact Registry, execute o comando gcloud artifacts.

Configurar a autenticação

Antes de enviar ou extrair imagens, configure o Docker para usar a Google Cloud CLI e autenticar solicitações ao Artifact Registry.

Para configurar a autenticação em repositórios do Docker na região us-central1, execute o seguinte comando:

gcloud auth configure-docker us-central1-docker.pkg.dev

O comando atualiza a configuração do Docker. Agora é possível se conectar com o Artifact Registry no projeto do Google Cloud para enviar e extrair imagens.

Para mais informações sobre outros métodos de autenticação, consulte a página Métodos de autenticação.

Acessar uma imagem para enviar

Neste guia de início rápido, você enviará uma imagem de amostra chamada hello-app.

Execute o comando a seguir para extrair a versão 1.0 da imagem.

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

Os caminhos das imagens no Artifact Registry incluem várias partes. Para esta imagem de exemplo:

  • us é o local do repositório.
  • docker.pkg.dev é o nome do host das imagens de contêiner armazenadas nos repositórios do Docker do Artifact Registry.
  • google-samples é o ID do repositório.
  • containers/gke/ é o caminho para a imagem em google-samples;

Adicionar a imagem ao repositório

Antes de enviar a imagem do Docker ao Artifact Registry, marque-a com o nome do repositório.

Marcar a imagem com um nome de registro

Marcar a imagem do Docker com um nome de repositório irá configurar o comando docker push para enviar a imagem para um local específico. Para este guia de início rápido, o local do host é us-central1-docker.pkg.dev.

Execute o seguinte comando para marcar a imagem como quickstart-image:tag1:

docker tag us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Por

  • us-central1 é o local do repositório.
  • docker.pkg.dev é o nome do host do repositório do Docker que você criou.
  • PROJECT é o ID do projeto do Google Cloud. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.
  • quickstart-docker-repo é o ID do repositório que você criou.
  • quickstart-image é o nome da imagem que você quer usar no repositório. O nome da imagem pode ser diferente do nome da imagem local. Para este guia de início rápido, você armazenará a imagem diretamente no ID do repositório quickstart-docker-repo.
  • tag1 é uma tag que você está adicionando à imagem do Docker. Se você não especificou uma tag, o Docker aplicará a tag padrão latest.

Agora você está pronto para enviar a imagem ao repositório que criou.

Envie a imagem para o Artifact Registry

Depois de configurar a autenticação e marcar a imagem local, é possível enviá-la para o repositório que você criou.

Basta executar o comando a seguir:

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

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

Extrair a imagem do Artifact Registry

Para extrair a imagem do Artifact Registry para a máquina local, execute o comando a seguir:

docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

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

O resultado será assim:

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

Antes de remover o repositório, verifique se as imagens que você quer manter estão disponíveis em outro local.

Para excluir o repositório:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, selecione o repositório quickstart-docker-repo.

  3. Clique em Excluir.

gcloud

Para excluir o repositório quickstart-docker-repo, execute o seguinte comando:

gcloud artifacts repositories delete quickstart-docker-repo --location=us-central1

A seguir