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ê:
Instalou a versão mais recente do SDK do Cloud, que inclui a ferramenta de linha de comando
gcloud
.Ativou o faturamento do projeto.
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 usarsudo
: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;
Tem permissões para enviar e extrair do registro.
Configurou o Docker para usar o
gcloud
como auxiliar de credencial ou está usando outro método de autenticação. Para usar ogcloud
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
Determine o nome do registro:
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 porgcr.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.
Escolha um nome de imagem, que pode ser diferente em sua máquina local.
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;
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
ouasia.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:
Clique no nome de uma imagem para acessar o registro específico.
No registro, marque a caixa ao lado da versão da imagem que você quer extrair.
Clique em EXIBIR COMANDO PULL na parte superior da página.
Copie o comando pull, que identifica a imagem usando a tag ou o resumo.
Próximas etapas
- Saiba mais sobre como gerenciar imagens, incluindo a adição ou remoção de tags e a exclusão de imagens.
- Saiba mais sobre como configurar o controle de acesso.
- Leia mais sobre os componentes e recursos do Container Registry.
- Saiba mais sobre como executar contêineres no Compute Engine.