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:

  • Crie 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 passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Enable the Artifact Registry API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  7. Enable the Artifact Registry API.

    Enable the 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 o A Google Cloud CLI, a principal interface de linha de comando do Google Cloud.
Shell local
Se preferir usar seu shell local, instale o Docker e CLI gcloud no seu 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 gcloud CLI e o Docker, siga estas etapas:

  1. Instale a CLI da gcloud. Para atualizar um 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 Adicionar. 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-west1.

  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-west1 com a descrição "repositório do docker".

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-west1 --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 CLI do Google Cloud e autenticar solicitações no Artifact Registry.

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

gcloud auth configure-docker us-west1-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 amostra imagem:

  • us é o local do repositório.
  • docker.pkg.dev é o nome do host das imagens de contêiner armazenadas em Repositórios 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-west1-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-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Onde

  • us-west1 é 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. Neste guia de início rápido, você vai 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-west1-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-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Substitua PROJECT pelo ID do projeto do Google Cloud. Se o ID do projeto contiver dois pontos (`:`), consulte Projetos com escopo de domínio. A saída será semelhante a esta:

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

Limpar

Para evitar cobranças na 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-west1

A seguir