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 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.

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 tem 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 conferir os metadados. 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, que podem ter versões diferentes. Para identificar uma versão específica de uma imagem, é possível especificar o resumo ou a tag da imagem.

Resumo
Um resumo de imagem é um hash gerado automaticamente do índice ou da imagem manifesto do aplicativo. 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 da imagem. Em no Artifact Registry, é possível configurar um repositório do Docker para permitir tags de imagem ou aplicar tags de imagem imutáveis.

  • Mutável: uma tag aponta para somente uma versão de uma imagem, mas a tag 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 registro com a mesma tag v1.1, a tag faz referência ao resumo do e a última versão foi enviada para o registro. Embora as tags de imagem mutáveis forneçam uma 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 a mesma imagem digerir. 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:

    • Exclui uma imagem marcada. Ainda é permitido excluir imagens sem tag.
    • Remova 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 identificá-la com o resumo, anexe @ ao nome da imagem, seguido pelo resumo:

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

Caso o ID do projeto contenha 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 ver 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, faça o seguinte: inclua https:// no início do nome completo.

Por exemplo, para visualizar o repositório us-west1-maven.pkg.dev/my-project/my-repo, use o seguinte 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.