Nomi di repository e immagini

Artifact Registry utilizza una convenzione di denominazione per identificare i repository e le immagini quando utilizzi i comandi API, gcloud e docker per interagire con i repository.

Repository Docker

Il nome completo di un repository Docker è nel seguente formato:

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

Dove:

  • LOCATION è la posizione regionale o multiregionale del repository.
  • PROJECT è il tuo ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY è il nome del repository.

Ad esempio, prendiamo in considerazione un'immagine con le seguenti caratteristiche:

  • Posizione del repository: us-west1
  • Formato del repository: docker
  • Nome del repository: my-repo
  • ID progetto: my-project

Il repository è specificato come:

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

Nomi delle immagini container

Il nome completo di un'immagine container è uno dei seguenti formati:

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

o

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

o

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

dove:

  • LOCATION è la posizione regionale o multiregionale del repository.
  • PROJECT è il tuo ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY è il nome del repository in cui è archiviata l'immagine.
  • IMAGE è il nome dell'immagine nel repository.
  • TAG è il tag della versione dell'immagine che vuoi estrarre.
  • IMAGE-DIGEST è il valore dell'hash SHA256 dei contenuti dell'immagine. Nella console Google Cloud, fai clic sull'immagine specifica per visualizzarne i metadati. Il digest è indicato come Digest immagine. Se non specifichi un tag o un digest, Artifact Registry cerca l'immagine con il tag predefinito latest. Per informazioni sulle versioni, consulta Versioni delle immagini dei contenitori.

Ad esempio, prendiamo in considerazione un'immagine con le seguenti caratteristiche:

  • Posizione del repository: us-west1
  • Nome del repository: my-repo
  • ID progetto: my-project
  • Nome dell'immagine: test
  • Tag: staging

Questa versione dell'immagine taggata con la fase di staging è specificata come:

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

Versioni delle immagini container

Un repository può contenere molte immagini container, che possono avere diverse versioni. Per identificare una versione specifica di un'immagine, puoi specificare il digest o il tag dell'immagine.

Digest
Un digest dell'immagine è un hash generato automaticamente dell'indice delle immagini o del manifest delle immagini. Ogni digest dell'immagine è un identificatore univoco per una versione dell'immagine e non può essere modificato. Il digest è il valore dell'hash SHA256 dei contenuti dell'immagine.
Tag

Un tag immagine è un'etichetta ed è spesso una stringa leggibile, ad esempio v1.1 o development. Un tag può puntare a una sola versione di un'immagine. In Artifact Registry, puoi configurare un repository Docker per consentire i tag immagine mutevoli o applicare i tag immagine immutabili.

  • Mutabile: un tag rimanda a una sola versione di un'immagine, ma il digest specifico a cui fa riferimento può cambiare.

    Un approccio comune è taggare le immagini con un identificatore di versione, ad esempio v1.1 al momento della compilazione. Quando la build esegue il push di più versioni dell'immagine nel registry con lo stesso tag v1.1, il tag fa riferimento al digest dell'ultima versione eseguita nel registry. Sebbene i tag immagine mutabili forniscano un modo comodo per etichettare le versioni, possono anche essere manipolati da un malintenzionato per associare un tag a una versione dannosa di un'immagine.

  • Immutabile: nel repository, un tag rimanda sempre allo stesso digest immagine. Se un repository Artifact Registry è configurato per i tag delle immagini immutabili, le seguenti azioni non sono consentite:

    • Eliminare un'immagine taggata. L'eliminazione delle immagini non taggate è ancora consentita.
    • Rimuovi un tag da un'immagine.
    • Eseguire il push di un'immagine con un tag già utilizzato da un'altra versione dell'immagine nel repository.

Ad esempio, prendiamo in considerazione un'immagine con le seguenti caratteristiche:

  • Posizione del repository: us-west1
  • Nome del repository: my-repo
  • ID progetto: my-project
  • Nome dell'immagine: test
  • Tag: staging
  • Digest: sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Per identificare l'immagine con il tag, aggiungi :staging al nome dell'immagine:

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

Per identificarlo con il digest, aggiungi @ al nome dell'immagine, seguito dal digest:

us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

Nella console, nella schermata Immagini, la colonna Tag elenca i tag dell'immagine. Fai clic sulla versione dell'immagine per visualizzare i metadati, tra cui il digest dell'immagine.

Per saperne di più sul tagging, consulta Tagging delle immagini.

Progetti basati su dominio

Se il progetto è limitato al tuo dominio, l'ID progetto include il nome del dominio seguito da due punti (:). A causa del modo in cui Docker tratta i due punti, devi sostituire il carattere dei due punti con una barra verticale quando specifichi un digest dell'immagine in Artifact Registry. Identifica le immagini in questi tipi di progetti utilizzando il seguente formato:

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

Ad esempio, il progetto con ID example.com:my-project potrebbe avere la seguente immagine:

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

Nomi dei repository come URL

Per accedere a un repository o a un artefatto in un repository nella console Google Cloud, prependi https:// al nome completo.

Ad esempio, per visualizzare il repository us-west1-maven.pkg.dev/my-project/my-repo, utilizza il seguente URL:

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

Per visualizzare l'immagine us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image, utilizza il seguente URL:

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

Qualsiasi utente autenticato che dispone dell'autorizzazione per accedere al repository può utilizzare questi link.