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:

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

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

Il repository è specificato come segue:

us-west1-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 regionale o multiregionale località 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 per la 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 visualizzare i relativi metadati. Il digest viene elencato 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 container.

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

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

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

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

Versioni immagine container

Un repository può contenere molte immagini container, che a loro volta 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 dell'immagine o del file manifest dell'immagine. Ogni digest immagine è un identificatore univoco per 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 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 mutabili o applicare tag immagine immutabili.

  • 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, come v1.1 al momento della creazione. Quando la build esegue il push di più versioni dell'immagine nel 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 conveniente per etichettare le versioni, possono anche essere manipolati da un malintenzionato in modo da 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:

  • Località del repository: us-west1
  • 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-west1-docker.pkg.dev/my-project/my-repo/test:staging

Per identificarla nel 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 i due punti (":"), consulta Progetti con ambito di dominio.

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

Per ulteriori informazioni sul tagging, consulta la sezione Tagging delle immagini.

Progetti con ambito di dominio

Se il tuo progetto ha come ambito il 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 i due punti con una barra quando specifichi un digest immagine in Artifact Registry. Identifica le immagini in questi tipi di progetti nel 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 un artefatto in un repository nella console Google Cloud, anteponi 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 abbia l'autorizzazione per accedere al repository può utilizzare questi link.