Gerir imagens

A gestão de imagens inclui listar imagens num repositório, adicionar etiquetas, eliminar etiquetas, copiar imagens para um novo repositório e eliminar imagens.

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

Antes de começar

Certifique-se de que:

  1. O Container Registry está ativado no seu projeto.

  2. Docker instalado.

  3. Configurou o Docker para autenticar no registo.

  4. Ter autorizações para aceder ao registo.

Apresentar imagens pela respetiva localização de armazenamento

Pode listar as imagens em localizações de anfitriões específicas através do Google Cloud console ou da linha de comandos.

Consola

Para listar as imagens numa das suas localizações de anfitriões:

  1. Aceda à página do Container Registry.

    Abra a página do Container Registry

  2. Use o seletor acima de Nome para escolher a localização do anfitrião. As opções incluem Todas as localizações e os nomes de anfitriões que o projeto usa atualmente, que podem incluir gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.

gcloud

Para apresentar uma lista das imagens que se encontram num dos seus locais de alojamento, use o seguinte comando:

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

where:

Se tiver registos aninhados, liste as imagens aninhadas especificando o nível do repositório onde estão armazenadas:

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

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

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

Listar as versões de uma imagem

Um registo pode conter diferentes versões de uma imagem. Estas versões têm o mesmo nome de imagem e são identificadas pelo respetivo resumo e etiquetas.

Consola

Para ver o resumo e as etiquetas de uma imagem:

  1. Aceda à página do Container Registry.

    Abra a página do Container Registry

  2. Clique no nome da imagem para ver as versões dessa imagem. O resumo truncado é apresentado em Nome e as etiquetas são apresentadas em Etiquetas.

  3. Para ver o resumo completo, clique na versão da imagem para ver os respetivos metadados. O resumo chama-se Resumo da imagem.

gcloud

Para apresentar uma lista dos resumos e das etiquetas truncados de uma imagem, execute o seguinte comando:

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

where:

Para listar o resumo completo das 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 gcloud container images list-tags documentação.

Etiquetar imagens

Pode adicionar uma etiqueta a uma imagem através do ícone Google Cloud console ou da linha de comandos.

Um resumo é um identificador único gerado automaticamente para uma versão de imagem. Uma etiqueta funciona como uma etiqueta que pode aplicar a uma versão específica de uma imagem.

Pode adicionar mais do que uma etiqueta a uma imagem. Num repositório, cada etiqueta de uma imagem tem de ser exclusiva. Por exemplo, se adicionar a etiqueta release-candidate à nona versão da imagem, adicionar a mesma etiqueta à décima versão move a etiqueta da nona versão para a décima versão.

Se não etiquetar uma imagem, o cliente Docker adiciona a etiqueta predefinida latest. Isto significa que latest não indica a versão mais recente de uma imagem. Em vez disso, significa uma versão de imagem que etiquetou especificamente como latest ou a versão mais recente de uma imagem sem etiqueta. Uma vez que o significado de latest não é claro, recomendamos que evite depender da etiqueta latest.

Consola

Para etiquetar uma imagem alojada pelo Container Registry:

  1. Aceda à página do Container Registry.

    Abra a página do Container Registry

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

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

  4. Escreva novas etiquetas no campo e, de seguida, clique em GUARDAR.

gcloud

Para etiquetar imagens alojadas 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]

where:

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

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

Etiquetar imagens locais para alojamento no Container Registry

Para enviar qualquer imagem local para o Container Registry, primeiro tem de etiquetá-la com o nome do registo e, em seguida, enviar a imagem. Para ver instruções, consulte o artigo Enviar uma imagem para um registo.

Remover etiquetas de imagens

Pode remover uma etiqueta de uma imagem no Container Registry através da Google Cloud console ou da linha de comandos.

Consola

  1. Aceda à página do Container Registry.

    Abra a página do Container Registry

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

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

  4. Elimine a etiqueta e, de seguida, clique em GUARDAR.

gcloud

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

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

where:

Copiar imagens para um novo registo

Pode copiar uma imagem de um repositório para outro através da linha de comandos. Tem de ter acesso a ambos os 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 mover pela respetiva etiqueta:

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

ou o respetivo resumo:

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

onde, tanto para a origem como para o destino:

  • [HOSTNAME] é a localização onde a imagem está alojada e é uma das quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] é o Google Cloud ID do projeto da consola. Se o ID do projeto tiver dois pontos (:), consulte o artigo Projetos com âmbito de domínio.
  • [IMAGE] é o nome da imagem no Container Registry.
  • [IMAGE_DIGEST] é o valor hash sha256 do conteúdo da imagem.
  • [TAG] é a etiqueta que identifica a imagem de origem a mover ou a etiqueta a aplicar à imagem no repositório de destino.

Por exemplo, se quiser copiar a imagem my-image para o repositório de outro projeto e para o anfitrião europeu, mas quiser manter o nome e a etiqueta da imagem, usaria:

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

onde [PROJECT-ID] e [OTHER-PROJECT-ID] são os Google Cloud IDs dos projetos da consola do projeto do qual está a copiar e para o qual está a copiar. Tem de ter acesso aos repositórios em ambos os projetos. Se qualquer um dos IDs dos projetos tiver um dois pontos (:), consulte o artigo Projetos no âmbito do domínio.

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

A eliminar imagens

Pode eliminar uma imagem através do Google Cloud console ou da linha de comandos. Depois de eliminar uma imagem, não pode anular esta ação.

Estão disponíveis outras ferramentas para ajudar a gerir imagens não usadas. Por exemplo, a ferramenta gcr-cleaner encontra e elimina imagens antigas com base em diferentes critérios. 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 da Google.

Para eliminar uma imagem a partir da Google Cloud consola ou da CLI gcloud:

Consola

  1. Aceda à página do Container Registry.

    Abra a página do Container Registry

  2. Clique no nome da imagem para ver as versões dessa imagem.

  3. No registo, selecione a caixa junto às versões da imagem que quer eliminar.

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

  5. No pop-up Eliminar itens do repositório, clique em ELIMINAR.

gcloud

Execute um dos seguintes comandos:

  • Uma imagem identificada pelo respetivo resumo:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
    
  • Uma imagem identificada pela respetiva etiqueta e que tem várias etiquetas:

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

where:

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

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

O que se segue?