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

onde:

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

  • PROJECT é o ID do projeto do console do Google Cloud. Se o código do projeto contiver dois pontos (:) e você estiver trabalhando com um repositório do Docker, 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
  • Formato do repositório: docker
  • Nome do repositório: my-repo
  • ID do projeto: my-project

O repositório é especificado como:

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

onde:

  • LOCATION é o local regional ou multirregional do repositório.
  • PROJECT é o ID do projeto do console do Google Cloud. 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
  • 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-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 versões diferentes. Para identificar uma versão específica de uma imagem, especifique o resumo ou a tag da imagem.

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

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 (pré-lançamento).

  • Mutável: uma tag aponta para apenas uma versão de uma imagem, mas o resumo específico a que ela faz referência pode mudar.

    Uma abordagem comum é marcar as imagens com um identificador de versão, como v1.1 no tempo de build. 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 ofereçam uma maneira conveniente de rotular versões, elas também podem ser manipuladas por um usuário de má-fé para 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 tags de imagem imutáveis, as seguintes ações não serão permitidas:

    • Excluir uma imagem marcada. Ainda é possível excluir imagens sem tag.
    • Remova a tag de uma imagem.
    • Envie uma imagem com uma tag que já esteja sendo usada por outra versão da imagem no repositório.

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

  • Local do repositório: us
  • 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-docker.pkg.dev/my-project/my-repo/test:staging

Para identificá-la com o resumo, anexe @ ao nome da imagem, seguido pelo resumo:

us-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-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, inclua https:// no nome completo.

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

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

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

https://us-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 usar esses links.