Artifact Registry utilizza una convenzione di denominazione per identificare repository e 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 località a livello di regione o multiregionale del repository.
PROJECT è il tuo ID progetto della console Google Cloud. Se l'ID progetto contiene i due punti (
:
) e utilizzi un repository Docker, consulta la sezione Progetti con ambito dominio.REPOSITORY è il nome del repository.
Ad esempio, prendi in considerazione un'immagine con le seguenti caratteristiche:
- Località repository:
us
- Formato repository:
docker
- Nome repository:
my-repo
- ID progetto:
my-project
Il repository è specificato come:
us-docker.pkg.dev/my-project/my-repo
Nomi 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 località a livello di regione o multiregionale del repository.
- PROJECT è il tuo ID progetto della console Google Cloud.
Se l'ID progetto contiene i due punti (
:
), consulta Progetti con ambito 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 che vuoi estrarre.
IMAGE-DIGEST è il valore hash sha256 dei contenuti dell'immagine. Nella console Google Cloud, fai clic sull'immagine specifica per visualizzarne i metadati. La sintesi viene elencata come digest immagine.
Se non specifichi un tag o un digest, Artifact Registry cerca l'immagine con il tag predefinito
latest
. Consulta le versioni delle immagini container per informazioni sulle versioni.
Ad esempio, prendi in considerazione un'immagine con le seguenti caratteristiche:
- Località 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 e queste immagini possono avere versioni diverse. Per identificare una versione specifica di un'immagine, puoi specificare il digest o il tag dell'immagine.
- Sintesi
- Un digest di immagini è un hash generato automaticamente dell'indice o del manifest dell'immagine. Il digest di ogni immagine è un identificatore univoco per la versione di un'immagine e non può essere modificato. Il digest è il valore hash sha256 dei contenuti dell'immagine.
- Tag
Un tag immagine è un'etichetta e spesso è una stringa leggibile come
v1.1
odevelopment
. Un tag può indirizzare a una sola versione di un'immagine. In Artifact Registry, puoi configurare un repository Docker per consentire i tag modificabili o applicare tag 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 è quello di taggare le immagini con un identificatore di versione, ad esempio
v1.1
al momento della build. Quando la build esegue il push di più versioni dell'immagine al registro con lo stesso tagv1.1
, il tag fa riferimento alla sintesi dell'ultima versione di cui è stato eseguito il push al registro. Sebbene i tag modificabili forniscano un modo pratico per etichettare le versioni, possono anche essere manipolati da un utente malintenzionato per associare un tag a una versione dannosa di un'immagine.Immutable (Immutabile): nel repository, un tag rimanda sempre alla stessa sintesi immagine. Se è configurato un repository Artifact Registry per i tag immutabili, le seguenti azioni non sono consentite:
- Eliminare un'immagine con tag. È comunque consentito 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, prendi in considerazione un'immagine con le seguenti caratteristiche:
- Località 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:
us-docker.pkg.dev/my-project/my-repo/test:staging
Per identificarla con il 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 dominio.
Nella console, nella schermata Immagini, la colonna Tag elenca i tag dell'immagine. Fai clic sulla versione dell'immagine per visualizzare i metadati, inclusa la sintesi dell'immagine.
Consulta la sezione Tagging delle immagini per ulteriori informazioni sul tagging.
Progetti con ambito a livello di dominio
Se l'ambito del tuo progetto è 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 il carattere dei due punti con una barra quando specifichi una sintesi 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 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 abbia l'autorizzazione ad accedere al repository può utilizzare questi link.