Concetti sui container

Questo documento introduce i concetti chiave relativi ai container, tra cui registri, repository e artefatti. Alcune informazioni di base su come queste si applicano ad Artifact Registry e Container Registry .

Registri

Un registry archivia e distribuisce immagini container e artefatti organizzati per all'interno di repository. Un registry può contenere un singolo repository o più repository e possono essere pubblici o privati.

Servizi di Registry come Docker Hub e Artifact Registry forniscono per creare repository pubblici o privati. Quando estrai immagini pubbliche, è importante per comprendere i possibili problemi di sicurezza. Informazioni gestione delle dipendenze per ulteriori informazioni sulle vulnerabilità il monitoraggio e la riduzione dell'impatto delle dipendenze.

I registry sono organizzati in repository che archiviano i singoli container in formato Docker. Artifact Registry consente di creare più repository in un singolo progetto e associare uno specifico una o più regioni con ogni repository. I repository correlati possono essere raggruppati per etichette.

Repository

Le immagini e gli artefatti con lo stesso nome, ma con tag diversi, sono organizzati in repository. Se non viene specificato alcun tag quando viene eseguito il push di un'immagine in un repository, l'immagine sia taggata con il tag latest. Se viene eseguito il push di un'altra immagine senza specificando un tag, il tag latest viene spostato dall'immagine originale a quella più recente lasciando la prima immagine senza tag. Consigliamo di assegnare alle release un tag diverso da più recente.

Il termine repository non viene sempre utilizzato in modo coerente; in Artifact Registry è più utile usare parti del percorso dell'immagine per identificare il progetto, . una o più regioni e il nome dell'immagine insieme al tag o digest manifest per identificare la versione corretta.

Ad esempio:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 è la località del repository
  • docker.pkg.dev è il nome host per i repository Docker.
  • PROJECT è lo spazio dei nomi creato dall'ID progetto di Google Cloud.
  • quickstart-docker-repo è lo spazio dei nomi all'interno del progetto in cui archivi in formato Docker. In Artifact Registry, questa parte del percorso è denominata repository Git.
  • quickstart-image è il repository per tutte le versioni di quickstart-image ed è spesso indicata come immagine.
  • tag1 è il tag che specifica la versione dell'immagine.

Immagini

Sia gli artefatti che le immagini possono essere archiviati in Artifact Registry. Un un artefatto può essere qualsiasi cosa: un file di testo, un'immagine Docker o un grafico Helm, in genere si riferisce a un'immagine container. Le immagini container sono pacchetti software contenenti tutti gli elementi necessari per l'esecuzione in qualsiasi ambiente. Letto Per saperne di più, cosa sono i contenitori.

Le immagini vengono sottoposte a push o caricate nei repository e pulled o scaricate. dai repository. Per specificare l'immagine e la versione corrette, è necessario specificare il registro e l'artefatto.

Ad esempio:

docker pull us-west1-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-west1-docker.pkg.dev è il registry
  • /google-samples/containers/gke/ sono lo spazio dei nomi e gli spazi secondari dei nomi. Nel Artifact Registry google-samples è il progetto Google Cloud e containers è definito repository Artifact Registry
  • hello-app è il nome dell'artefatto
  • :1.0 è il tag che specifica la versione dell'artefatto da estrarre

Base

Le immagini container archiviate nei repository vengono create in modo incrementale utilizzando livelli. Immagini diverse possono utilizzare alcuni degli stessi livelli. I livelli sono definiti in modi diversi a seconda del tipo di immagine; ad esempio, ogni istruzione in un Dockerfile corrisponde a un livello nell'immagine Docker. All'interno di un registry, le immagini con livelli comuni li condividono, aumentando l'efficienza dell'archiviazione. Per motivi di sicurezza, i livelli non vengono condivisi tra registri diversi.

Quando elimini un'immagine container, i livelli non vengono eliminati immediatamente. Livelli a cui non fanno riferimento nessuna immagine nel registro, vengono eliminati ogni giorno.

Tag

Gli utenti aggiungono tag quando eseguono il push o il pull di un'immagine in un repository per specificare di un'immagine. Un'immagine può avere uno o più tag o nessun tag. Se esegui il push di un'immagine due volte con lo stesso tag, il tag viene rimosso dalla alla prima immagine, per poi passare alla seconda, lasciando la prima immagine senza tag. La l'immagine senza tag è ancora accessibile tramite le relative sintesi del file manifest.

Il tag latest è un tag speciale aggiunto quando le immagini vengono caricate senza tag.

Ad esempio:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

esegue il push dell'immagine a hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

estrae l'immagine hello-app:latest.

È importante notare che quando viene eseguito il push di un'immagine in un repository con un tag diverso da latest, il tag latest non viene aggiunto, pertanto è possibile che l'immagine latest dietro le modifiche più aggiornate. Consigliati per te utilizzando tag diversi da latest per le release. Per ulteriori informazioni sul tagging immagini scopri come taggare correttamente le immagini.

Manifest

I file manifest delle immagini identificano e specificano in modo univoco i livelli all'interno di ogni immagine. I file manifest sono identificati da hash SHA-256 univoci chiamati digest dei manifest. Le sintesi dei file manifest sono più affidabili e sicure dei tag, perché più versioni della stessa immagine possono essere inviate allo stesso tag, lasciando alcune immagini senza tag, mentre ogni immagine è specificata in modo univoco dal relativo digest manifest.

Se utilizzi strumenti per scansionare o analizzare le immagini, i risultati di questi strumenti sono valida per l'immagine scansionata. Per assicurarti di eseguire il deployment dell'immagine non puoi fare affidamento sul tag perché l'immagine a cui fa riferimento modifica.

Per saperne di più su tag e manifest specifici di Artifact Registry, consulta Gestione delle immagini e Utilizzo delle immagini container.

Passaggi successivi