Como gerenciar imagens

Gerenciar imagens inclui listar imagens em um repositório, adicionar tags, excluir tags, copiar imagens para um novo repositório e excluir imagens.

Para informações sobre como enviar uma imagem local para o Container Registry ou extrair uma imagem armazenada no Container Registry, consulte Como enviar e extrair imagens.

Antes de começar

Certifique-se de que você:

  1. ativou o Container Registry no projeto;

  2. Instalou o Docker.

  3. configurou o Docker para se autenticar no registro.

  4. tem permissões para acessar o registro;

Como listar imagens pelo local de armazenamento

É possível listar as imagens em locais de host específicos usando o Console do Google Cloud ou a linha de comando.

Console

Para listar as imagens em um dos seus locais de host:

  1. Acesse a página do Container Registry.

    Abrir a página do Container Registry

  2. Use o seletor acima de Nome para escolher o local do host. As opções incluem Todos os locais e os nomes de host que o projeto usa atualmente, que podem incluir gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.

gcloud

Para listar as imagens que estão em um dos seus locais de host, use o seguinte comando:

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]

onde:

  • [HOSTNAME] está listado em Location no console. É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Caso o ID do projeto contenha dois pontos (:), consulte Projetos com escopo de domínio.

Se você tiver registros aninhados, liste as imagens aninhadas especificando o nível do repositório em que elas estão armazenadas:

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]

em que [IMAGE] é o repositório no qual mais imagens estão aninhadas.

Consulte também a documentação gcloud container images list.

Como listar as versões de uma imagem

Um registro pode conter versões diferentes de uma imagem. Essas versões têm o mesmo nome de imagem e são identificadas por seus resumos e tags.

Console

Para ver o resumo e as tags de uma imagem:

  1. Acesse a página do Container Registry.

    Abrir a página do Container Registry

  2. Clique no nome da imagem para ver as versões dessa imagem. O resumo truncado está listado em Nome e as tags estão listadas em Tags.

  3. Se quiser ver o resumo completo, clique na versão da imagem para ver os respectivos metadados. O resumo é chamado de Resumo da imagem.

gcloud

Para listar as tags e os resumos truncados de uma imagem, execute o seguinte comando:

gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]

onde:

  • [HOSTNAME] está listado em Location no console. É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Se o ID do projeto tiver dois pontos (:), consulte Projetos com escopo de domínio.
  • [IMAGE] é o nome da imagem no Container Registry;

Para listar o resumo completo de uma ou mais versões de uma imagem específica, execute o seguinte comando:

gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]

Consulte a documentação gcloud container images list-tags.

Como marcar imagens

É possível adicionar uma tag a uma imagem usando o console do Google Cloud ou a linha de comando.

Um resumo é um identificador exclusivo gerado automaticamente para uma versão de imagem. Uma tag atua como um rótulo que pode ser aplicado a uma versão específica de uma imagem.

É possível adicionar mais de uma tag a uma imagem. Em um repositório, cada tag para uma imagem precisa ser exclusiva. Por exemplo, se você adicionar a tag release-candidate à nona versão da sua imagem, adicionar a mesma tag à décima versão moverá a tag da nona versão para a décima versão.

Se você não marcar uma imagem, o cliente do Docker adicionará a tag padrão latest. Isso significa que latest não indica a versão mais recente de uma imagem. Na verdade, isso significa uma versão de imagem que você marcou especificamente como latest ou a versão sem tag mais recente de uma imagem. Como o significado de latest não é claro, recomendamos evitar a dependência na tag latest.

Console

Para marcar uma imagem hospedada pelo Container Registry:

  1. Acesse a página do Container Registry.

    Abrir a página do Container Registry

  2. Clique no nome da imagem para ver a versão dela.

  3. Em Tags, clique no ícone de edição.

  4. Insira novas tags no campo e clique em SALVAR.

gcloud

Para marcar imagens hospedadas pelo Container Registry, use o comando gcloud container images add-tag:

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

ou

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

onde:

  • [HOSTNAME] está listado em Location no console. É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Se o ID do projeto tiver dois pontos (:), consulte Projetos com escopo de domínio.
  • [IMAGE] é o nome da imagem no Container Registry;
  • [TAG] é uma tag que já está aplicada à imagem;
  • [IMAGE_DIGEST] é o valor de hash sha256 do conteúdo da imagem.
  • [NEW_TAG] é a nova tag que você está adicionando à imagem.

Consulte gcloud container images add-tag para mais informações sobre este comando.

Como incluir tags em imagens locais para hospedagem no Container Registry

Para enviar qualquer imagem local para o Container Registry, primeiro inclua uma tag com o nome do registro e, em seguida, envie a imagem. Para ver instruções, consulte Como enviar uma imagem para um registro.

Como desmarcar imagens

É possível remover uma tag de uma imagem no Container Registry usando o console do Google Cloud ou a linha de comando.

Console

  1. Acesse a página do Container Registry.

    Abrir a página do Container Registry

  2. Clique no nome da imagem para ver a versão dela.

  3. Em Tags, clique no ícone de edição.

  4. Exclua a tag e clique em SALVAR.

gcloud

Para remover uma tag de uma imagem, use o seguinte comando:

gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

onde:

  • [HOSTNAME] está listado em Location no console. É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Se o ID do projeto tiver dois pontos (:), consulte Projetos com escopo de domínio.
  • [IMAGE] é o nome da imagem no Container Registry;
  • [TAG] é a tag que você quer remover.

    Consulte gcloud container images untag para mais informações sobre este comando.

Como copiar imagens para um novo registro

É possível copiar uma imagem de um repositório para outro usando a linha de comando. Você precisa ter acesso aos dois repositórios.

Para copiar uma imagem de um repositório para outro, use o comando gcloud container images add-tag e identifique a imagem a ser movida pela tag:

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

ou pelo resumo:

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

em que, tanto para a origem como para o destino:

  • [HOSTNAME] é o local onde a imagem está hospedada e é uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Se o ID do projeto tiver dois pontos (:), consulte Projetos com escopo de domínio.
  • [IMAGE] é o nome da imagem no Container Registry;
  • [IMAGE_DIGEST] é o valor de hash sha256 do conteúdo da imagem.
  • [TAG] é a tag que identifica a imagem de origem a ser movida ou a tag a ser aplicada à imagem no repositório de destino.

Por exemplo, se você quisesse copiar a imagem my-image para o repositório de outro projeto e para um host europeu, mas quisesse manter o nome da imagem e a tag, você deveria usar:

gcloud container images add-tag \
gcr.io/[PROJECT-ID]/my-image:tag1 \
eu.gcr.io/[OTHER-PROJECT-ID]/my-image:tag1

em que [PROJECT-ID] e [OTHER-PROJECT-ID] são os IDs de projeto do console do Google Cloud dos projetos de origem e de destino da cópia. Você precisa ter acesso aos repositórios nos dois projetos. Se algum D de projeto contiver dois pontos (:) consulte projetos com escopo de domínio.

Consulte gcloud container images add-tag para mais informações sobre este comando.

Como excluir imagens

É possível excluir uma imagem usando o console do Google Cloud ou a linha de comando. Depois de excluir uma imagem, não é possível desfazer essa ação.

Outras ferramentas estão disponíveis para ajudar você a gerenciar imagens não utilizadas. Por exemplo, a ferramenta gcr-cleaner descobre e exclui imagens antigas com base em critérios diferentes. A remoção de imagens não usadas pode ajudar a reduzir os custos de armazenamento. A ferramenta gcr-cleaner não é um produto oficial do Google.

Para excluir imagens do console do Google Cloud ou da CLI gcloud:

Console

  1. Acesse a página do Container Registry.

    Abrir a página do Container Registry

  2. Clique no nome da imagem para ver a(s) versão(ões) dessa imagem.

  3. No registro, marque a caixa ao lado das versões da imagem que você quer excluir.

  4. Clique em EXCLUIR na parte superior da página.

  5. No pop-up Excluir itens do repositório, clique em EXCLUIR.

gcloud

Execute um dos seguintes comandos:

  • Uma imagem identificada pelo respectivo resumo:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
    
  • Uma imagem identificada pela respectiva tag com várias tags:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
    

onde:

  • [HOSTNAME] está listado em Location no console. É uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o ID do projeto do console do Google Cloud. Se o ID do projeto tiver dois pontos (:), consulte Projetos com escopo de domínio.
  • [IMAGE] é o nome da imagem no Container Registry;
  • [IMAGE_DIGEST] é o valor de hash sha256 do conteúdo da imagem.
  • [TAG] é a tag da imagem que você quer remover.

Consulte gcloud container images delete para ver mais informações sobre este comando.

A seguir