Nomi di repository e immagini

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

Repository Docker

Il nome completo di un repository Docker ha il seguente formato:

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

dove:

  • LOCATION è la località a livello di una o più regioni del repository.

  • PROJECT è l'ID progetto della console Google Cloud. Se l'ID progetto contiene i due punti (:) e stai lavorando con un repository Docker, consulta Progetti con ambito di dominio.

  • REPOSITORY è il nome del repository.

Ad esempio, considera un'immagine con le seguenti caratteristiche:

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

Il repository è specificato come segue:

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

Nomi immagini container

Il nome completo di un'immagine container è in 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 località a livello di una o più regioni del repository.
  • PROJECT è l'ID progetto della console Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di 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 di cui vuoi eseguire il pull.
  • IMAGE-DIGEST è il valore hash sha256 dei contenuti dell'immagine. Nella console Google Cloud, fai clic sull'immagine specifica per visualizzarne i metadati. Il digest viene elencato come Image digest.

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

Ad esempio, considera un'immagine con le seguenti caratteristiche:

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

Questa versione dell'immagine codificata con gestione temporanea è specificata come segue:

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

Versioni immagine container

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

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

Un tag immagine è un'etichetta ed è spesso una stringa leggibile da una persona, come v1.1 o development. Un tag può puntare solo a una versione di un'immagine. In Artifact Registry, puoi configurare un repository Docker per consentire tag immagine modificabili o applicare tag immagine immutabili (anteprima).

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

    Un approccio comune consiste nel taggare le immagini con un identificatore di versione, ad esempio v1.1, al momento della creazione. Quando la build esegue il push di più versioni dell'immagine al registro con lo stesso tag v1.1, il tag fa riferimento al digest dell'ultima versione inviata al registro. Sebbene i tag immagine modificabili offrano un modo pratico per etichettare le versioni, possono anche essere manipolati da un utente malintenzionato al fine di 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 immagine immutabili, non sono consentite le seguenti azioni:

    • Eliminare un'immagine taggata. È ancora possibile eliminare le immagini senza tag.
    • Rimuovere un tag da un'immagine.
    • Esegui il push di un'immagine con un tag già utilizzato da un'altra versione dell'immagine nel repository.

Ad esempio, considera un'immagine con le seguenti caratteristiche:

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

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

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

Per identificarla nel digest, aggiungi @ al nome dell'immagine, seguito dal digest:

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

Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio.

Nella schermata Immagini della console, la colonna Tag elenca i tag dell'immagine. Fai clic sulla versione dell'immagine per visualizzare i metadati, incluso il Sintesi immagine.

Consulta la sezione Tagging delle immagini per ulteriori informazioni sul tagging.

Progetti con ambito di dominio

Se il progetto ha come ambito il tuo dominio, l'ID progetto include il nome del dominio seguito dai due punti (:). Per via del modo in cui Docker tratta i due punti, devi sostituire i due punti con una barra quando specifichi un digest 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-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, anteponi https:// al nome completo.

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

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

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

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