Come funzionano i registri dei container Docker?

0
107

I registri di container Docker come Docker Hub sono piattaforme per l'hosting e la condivisione di container Docker . Sebbene l'hub Docker predefinito sia incentrato sui container pubblici, la maggior parte dei provider cloud come AWS e GCP eseguirà i propri registri di container privati.

Che cosa sono i registri Docker?

I registri dei contenitori sono un sistema di archiviazione e distribuzione online per immagini Docker denominate. È abbastanza simile a un gestore di pacchetti come NPM, poiché può memorizzare anche diverse versioni di immagini. Chiunque disponga di un account di registro può accedere e caricare immagini create eseguendo docker push con un parametro nome utente/nome immagine:

docker push anthonyheddings/testcontainer

Quindi, se desideri utilizzare quel contenitore da qualche altra parte, puoi scaricarlo allo stesso modo:

docker pull anthonyheddings/testcontainer

A meno che tu non stia costruendo la tua immagine DA zero, sei probabilmente tirando dall'hub Docker. L'hub Docker è il registro Docker predefinito.

Quando scrivi un Dockerfile per la tua applicazione, puoi estendere le immagini dall'hub Docker utilizzando il comando FROM:

FROM ubuntu Advertisement

Per alcuni contenitori come Ubuntu, sono immagini ufficiali di Docker, il che significa che sono così ampiamente utilizzati che non è necessario specificare il nome utente che li ha caricati (che può essere ridondante se stai semplicemente digitando ubuntu/ubuntu).

Tagging di contenitori

I contenitori nei registri Docker sono organizzati in Repository. Sono abbastanza simili al concetto di repository Git, tranne che al posto dei rami, i contenitori sono organizzati utilizzando tag diversi.

I tag sono semplicemente etichette che forniscono un modo migliore per gestire il controllo della versione e i rilasci. Puoi assegnarli a qualsiasi build completata. Invece di fare riferimento all'ID build, puoi taggare un'immagine con un'etichetta nel formato major.minor.patch ed essere facilmente in grado di dire quale immagine è quale, o qualunque formato preferisca la tua organizzazione.

Se non specifichi un tag, Docker applicherà automaticamente il tag “ultimo” etichetta. Ogni volta che estrai un'immagine dall'hub, probabilmente stai recuperando l'ultima a meno che non specifichi un numero di versione.

Puoi utilizzare il tag docker per taggare manualmente le immagini, ma è molto più semplice usa -t con docker build.

 docker build -t username/image:tag . Pubblicità

Quando esegui il push dell'immagine nell'hub Docker o in qualsiasi altro registro, sarai in grado di scaricare versioni diverse a seconda del tag.

Alternative a Docker Hub

L'hub Docker è l'impostazione predefinita, quindi se non ne specifichi uno diverso, tutti i comandi Docker che funzionano con i registri aggiungeranno hub.docker.com come predefinito.

Tuttavia, molti provider cloud offriranno i propri registri Docker come servizio, che di solito si integrano con gli altri servizi relativi ai container che forniscono. Ad esempio, c'è Google Container Registry, che funziona bene con Cloud Run e il relativo servizio Kubernetes.

Puoi passare a un nuovo registro, anteponendo semplicemente l'URL del registro a tutti i riferimenti al contenitore. Per GCR, sarebbe gcr.io:

gcr.io/anthonyheddings/test

Proprio come Docker Hub, dovrai accedere al registro con l'accesso docker.

AWS ha Elastic Container Registry, che funziona bene con Elastic Container Service ed Elastic Kubernetes Service.

Azure ha Azure Container Registry, che funziona con il servizio Kubernetes.