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. Make sure that billing is enabled for your Google Cloud project.

  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. Make sure that billing is enabled for your Google Cloud project.

  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