Nomes de repositório e imagem

O Artifact Registry usa uma convenção de nomenclatura para identificar repositórios e imagens ao usar os comandos de API, gcloud e docker para interagir com os repositórios.

Repositórios do Docker

O nome completo de um repositório do Docker está no seguinte formato:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

em que:

  • LOCATION é o regional ou multirregional local do repositório.

  • PROJECT é o ID do projeto do console do Google Cloud. Se o ID do projeto contiver dois pontos (`:`), consulte Projetos com escopo de domínio.

  • REPOSITORY é o nome do repositório.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Formato do repositório: docker
  • Nome do repositório: my-repo
  • ID do projeto: my-project

O repositório é especificado como:

us-west1-docker.pkg.dev/my-project/my-repo

Nomes de imagens de contêiner

O nome completo de uma imagem de contêiner é um dos seguintes formatos:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

ou

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

ou

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

em que:

  • LOCATION é o regional ou multirregional local do repositório.
  • PROJECT é o console do Google Cloud. ID do projeto. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY é o nome do repositório em que a imagem está armazenada.
  • IMAGE é o nome da imagem no repositório.
  • TAG é a tag da versão de imagem que você quer extrair.
  • IMAGE-DIGEST é o valor de hash sha256 do conteúdo da imagem. No console do Google Cloud, clique na imagem específica para ver os metadados dela. O resumo é listado como Resumo da imagem.

    Se você não especificar uma tag ou um resumo, o Artifact Registry procurará a imagem com a tag padrão latest. Consulte Versões de imagem de contêiner para mais informações sobre versões.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Nome do repositório: my-repo
  • ID do projeto: my-project
  • Nome da imagem: test
  • Tag: staging

Essa versão da imagem marcada com preparação é especificada como:

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

Versões de imagem de contêiner

Um repositório pode conter muitas imagens de contêiner, e essas imagens podem ter diferentes versões. Para identificar uma versão específica de uma imagem, é possível especificar o resumo ou a tag da imagem.

Resumo por e-mail
Um resumo da imagem é um hash gerado automaticamente do índice ou do manifesto da imagem. Cada resumo de imagem é um identificador exclusivo para uma versão da imagem e não pode ser alterado. O resumo é o valor de hash sha256 do conteúdo da imagem.
Tag

Uma tag de imagem é um rótulo e geralmente é uma string legível, como v1.1 ou development. Uma tag só pode apontar para uma versão de uma imagem. No Artifact Registry, é possível configurar um repositório do Docker para permitir tags de imagem mutáveis ou aplicar tags de imagem imutáveis.

  • Mutável: uma tag aponta para somente uma versão de uma imagem, mas a específica que ele referencia podem mudar.

    Uma abordagem comum é marcar imagens com um identificador de versão, como v1.1 no momento da criação. Quando o build envia várias versões da imagem para o registro com a mesma tag v1.1, a tag faz referência ao resumo da última versão enviada ao registro. Embora as tags de imagem mutáveis forneçam uma uma forma conveniente de rotular versões, elas também podem ser manipuladas por uma associar uma tag a uma versão maliciosa de uma imagem.

  • Imutável: no repositório, uma tag sempre aponta para o mesmo resumo de imagem. Se um repositório do Artifact Registry estiver configurado para ser imutável tags de imagem, as seguintes ações não são permitidas:

    • Excluir uma imagem marcada. A exclusão de imagens não marcadas ainda é permitida.
    • Remover uma tag de uma imagem.
    • Envie por push uma imagem com uma tag que já é usada por outra versão do a imagem no repositório.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Nome do repositório: my-repo
  • ID do projeto: my-project
  • Nome da imagem: test
  • Tag: staging
  • Resumo: sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Para identificar a imagem com a tag, anexe :staging ao nome da imagem:

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

Para identificar com o resumo, anexe @ ao nome da imagem, seguido pelo resumo:

us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Se o ID do projeto contiver dois pontos (`:`), consulte Projetos com escopo de domínio.

No console, na tela Imagens, a coluna Tags lista as tags da imagem. Clique na versão da imagem para conferir os metadados, incluindo o Resumo da imagem.

Consulte Como incluir tags em imagens para mais informações sobre inclusão de tags.

Projetos de escopo de domínio

Se seu projeto estiver no escopo de seu domínio, o ID do projeto incluirá o nome do domínio seguido por dois pontos (:). Por causa de como o Docker trata dois pontos, você deve substituir o caractere de dois pontos por uma barra quando especificar um resumo de imagem no Artifact Registry. Identifique imagens nesses tipos de projetos usando o seguinte formato:

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

Por exemplo, o projeto com o ID example.com:my-project poderia ter a seguinte imagem:

us-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name

Nomes de repositório como URLs

Para acessar um repositório ou artefato em um repositório no console do Google Cloud, adicione https:// ao nome completo.

Por exemplo, para acessar o repositório us-west1-maven.pkg.dev/my-project/my-repo, use este URL:

https://us-west1-maven.pkg.dev/my-project/my-repo

Para conferir a imagem us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image, use o seguinte URL:

https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image

Qualquer usuário autenticado que tenha permissão para acessar o repositório pode usá-las links.