Guia de início rápido do Container Registry

O Container Registry é um registro de imagem de contêiner particular executado no Google Cloud.

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

  • criar uma imagem do Docker;
  • enviar a imagem para o Container Registry do seu projeto;
  • extrair a imagem do Container Registry do seu projeto.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do GCP, na página do seletor de projetos, selecione ou crie um projeto do GCP.

    Acesse a página do seletor de projetos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform. Saiba como confirmar que o faturamento está ativado para seu projeto.

  4. Ative a(s) Container Registry API necessária(s).

    Ativar a(s) API

  5. Instale e inicialize o SDK do Cloud..
  6. Instale o Docker. 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.

  7. Abra o Docker. Para garantir que o Docker esteja ativo, execute o seguinte comando do Docker, que retorna a hora e a data atuais:
  8. docker run busybox date

Para seguir este guia de início rápido, use o Cloud Shell ou qualquer ambiente em que o SDK do Cloud esteja instalado.

Criar uma imagem do Docker

Neste guia, crie a imagem do Docker a seguir para poder enviá-la ao Container Registry. Esta imagem do Docker contém um pequeno aplicativo da Web em Python. "O aplicativo usa o framework da Web Flask para disponibilizar uma página da web que exibe a mensagem" "Hello, World!"

Para criar a imagem do Docker, siga estas etapas:

  1. Crie um diretório para armazenar os três arquivos de imagem do Docker.

  2. Nesse diretório, crie três arquivos: Dockerfile, requirements.txt e app.py. Consulte os exemplos abaixo de como o conteúdo de cada arquivo precisa ser:

Dockerfile

# The file Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:3.5-slim
WORKDIR /app
ADD . /app

# Install any necessary dependencies
RUN pip install -r requirements.txt

# Open port 80 for serving the webpage
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

requirements.txt

# The file requirements.txt defines the image's dependencies
Flask

app.py

# The Docker image contains the following code in app.py
from flask import Flask
import os
import socket

app = Flask(__name__)

@app.route("/")
def hello():
    html = "<h3>Hello, World!</h3>"
    return html

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

Para criar a imagem do Docker, execute o seguinte comando a partir do diretório que contém os arquivos dela:

docker build -t quickstart-image .

Você criou uma imagem do Docker na máquina local.

Adicionar a imagem ao Container Registry

Configurar docker para usar a ferramenta de linha de comando gcloud como um assistente de credencial

Antes de enviar ou extrair imagens, é necessário configurar o Docker para usar a ferramenta de linha de comando gcloud para autenticar solicitações para o Container Registry. Para isso, execute o seguinte comando (você só precisa fazer isso uma vez):

gcloud auth configure-docker

Marcar a imagem com um nome de registro

Antes de enviar a imagem do Docker ao Container Registry, marque-a com seu nome de registro. Marcar a imagem do Docker com um nome de registro configura o comando docker push para enviar a imagem a um local específico. Para este guia de início rápido, o local do host é gcr.io.

Para marcar a imagem do Docker, execute este comando:

docker tag quickstart-image gcr.io/[PROJECT-ID]/quickstart-image:tag1

onde:

  • [PROJECT-ID] é o Console do Google Cloud ID do projeto, que você precisa adicionar ao seu comando. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.
  • gcr.io é o nome do host
  • quickstart-image é o nome da imagem do Docker
  • 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 Container Registry.

Enviar a imagem ao Container Registry

Depois que o docker tiver sido configurado para usar o gcloud como um auxiliar de credencial e a imagem local estiver marcada com o nome do registro, você poderá enviá-la para o Container Registry.

Basta executar o comando a seguir:

docker push gcr.io/[PROJECT-ID]/quickstart-image:tag1

em que [PROJECT-ID] é 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.

Quando você envia uma imagem para um novo local de host, o serviço cria um intervalo de armazenamento subjacente exclusivo para seu projeto. Para visualizar imagens hosted byhospedadas pelo Container Registry através do Console do Cloud, ou acessar o nome do registro da imagem no navegador da Web: http://gcr.io/[PROJECT-ID]/quickstart-image.

Extrair a imagem do Container Registry

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

docker pull gcr.io/[PROJECT-ID]/quickstart-image:tag1

em que [PROJECT-ID] é 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.

O resultado será assim:

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/[PROJECT-ID]/quickstart-image:tag1

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia de início rápido, siga estas etapas:

Execute o comando a seguir para excluir a imagem do Docker do Container Registry.

gcloud container images delete gcr.io/[PROJECT-ID]/quickstart-image:tag1 --force-delete-tags

em que [PROJECT-ID] é 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.

A seguir