GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come spingere e tirare le immagini Docker con il registro dei contenitori di DigitalOcean

Il Container Registry di DigitalOcean ti offre uno spazio privato nel cloud per archiviare e distribuire le tue immagini Docker. Oltre a offrire un repository di immagini, il servizio si integra anche negli altri servizi di DigitalOcean. Puoi distribuire le immagini archiviate su App Platform e usarle con i tuoi cluster Kubernetes gestiti.

Vantaggi e caratteristiche

Container Registry è un concorrente di Docker Hub che ti consente di mantenere le tue immagini Docker all'interno del tuo account DigitalOcean. È l'ideale quando accederai a quelle immagini con altre funzionalità di DigitalOcean. Non è necessario configurare un account Docker Hub a pagamento separato per le immagini private della tua app.

I dati conservati nel Container Registry vengono bilanciati automaticamente in più regioni di datacenter DigitalOcean. Ciò accelera il recupero delle immagini quando avvii i contenitori e li inserirai nella tua macchina. A differenza di altre funzionalità di DigitalOcean, non puoi selezionare manualmente il datacenter di un Container Registry.

L'implementazione del registro di DigitalOcean è conforme a OCI, quindi puoi interagire con esso utilizzando strumenti ecosistemici familiari. Comandi come docker push e docker pull funzionerà semplicemente dopo aver aggiunto le credenziali del registro alla CLI. Allo stesso modo, orchestratori come Kubernetes non avranno problemi a fare riferimento alle immagini nel registro.

Creazione di un registro

Container Registry è disponibile gratuitamente, ma il piano gratuito presenta alcune gravi limitazioni. Ottieni un repository di immagini (nome dell'immagine di primo livello), 500 MB di spazio di archiviazione e un limite di trasferimento dei dati in uscita di 500 MB:adeguato per valutare il servizio ma probabilmente non adatto per un uso a lungo termine. Il piano Basic da $ 5/mese ti offre cinque repository e 5 GB, mentre la versione da $ 20/Professional include repository illimitati e 100 GB di spazio di archiviazione. Le eccedenze di archiviazione vengono fatturate a $ 0,02/GB.

Crea un registro accedendo al pannello di controllo di DigitalOcean e facendo clic sul collegamento "Registro contenitori" nella barra laterale di sinistra. Assegna un nome al tuo nuovo registro e seleziona il tuo piano di archiviazione. Il nome deve essere univoco a livello globale in ogni registro DigitalOcean, quindi la tua prima scelta potrebbe non essere disponibile. Deve essere composto da un massimo di 63 caratteri, inclusi lettere, numeri e trattini.

La creazione di un nuovo registro può richiedere alcuni secondi. Verrai indirizzato alla schermata del dashboard del tuo registro una volta completato il processo.

Collegamento della CLI Docker

Il prossimo passo è connettere la Docker CLI al registro. Devi fornire a Docker le credenziali del registro in modo che possa eseguire il push e il pull di immagini utilizzando il tuo account. Ci sono tre modi diversi per raggiungere questo obiettivo.

Utilizzo di Doctl

L'utilità della riga di comando ufficiale di DigitalOcean, Doctl, include uno script pratico che configura il tuo client Docker per funzionare con il tuo Container Registry.

Dovrai avere Doctl installato e autenticato sul tuo account DigitalOcean per utilizzare questo metodo. Eseguire il comando seguente per configurare l'integrazione:

doctl registry login

Utilizzo di un token API DigitalOcean

I token API DigitalOcean possono essere utilizzati per l'autenticazione nei registri dei contenitori. Genera un token facendo clic sul collegamento "API" nella parte inferiore della barra laterale sinistra nel tuo account DigitalOcean. Fai clic su "Genera nuovo token", assegnagli un nome e premi "Genera token" nel popup seguente.

Verrà visualizzato il valore del token. Prendi nota di questo dato che non sarai in grado di recuperarlo in seguito. Ora torna alla tua CLI e usa il docker login comando per connettersi al registro:

docker login registry.digitalocean.com

Ti verrà chiesto di fornire un nome utente e una password. Utilizza il valore del token API generato per entrambi campi. Docker sarà ora in grado di interagire con i registri DigitalOcean che appartengono al tuo account.

Download di un file delle credenziali Docker

Se non desideri generare una chiave API o utilizzare Doctl, vai alla pagina del dashboard del Registro dei contenitori e fai clic sul pulsante blu "Azioni" in alto a destra. Seleziona "Scarica credenziali Docker" dal menu.

Questo file è un config.json compatibile con Docker che include le credenziali per il tuo registro. Puoi unirlo al tuo ~/.docker/config.json principale file o utilizzare il --config contrassegna con docker comandi:

docker --config ~/downloaded-config.json pull registry.digitalocean.com/<your-registry-name>/example-image:latest

Utilizzo di Docker per spingere e tirare immagini

Con Docker configurato correttamente, ora puoi utilizzare la CLI per eseguire il push e il pull di immagini con il tuo Container Registry. Le immagini devono essere taggate nel seguente formato:

registry.digitalocean.com/<your-registry-name>/example-image:latest

Ecco un semplice esempio di push di una copia di un'immagine esistente nel registro:

docker pull httpd:latest
docker tag httpd:latest registry.digitalocean.com/<your-registry-name>/httpd:latest
docker push registry.digitalocean.com/<your-registry-name>/httpd:latest

Vai alla dashboard del tuo registro nel pannello di controllo di DigitalOcean. L'immagine appena inviata dovrebbe essere visualizzata nel registro. È possibile fare clic sull'immagine per vedere i tag disponibili. Elimina un tag specifico, o tutti i tag disponibili per un'immagine, facendo clic sull'icona dei tre puntini all'estrema destra e selezionando dal menu.

Raccolta dei rifiuti

L'eliminazione di immagini dal registro potrebbe lasciare livelli ridondanti che non vengono più utilizzati dai manifesti rimanenti. Questi livelli continueranno a essere conteggiati nel tuo costo di archiviazione.

DigitalOcean fornisce una funzione di Garbage Collection per rimuovere livelli e manifest orfani. Vedrai un riquadro sulla schermata del dashboard del registro quando la raccolta dei rifiuti potrebbe liberare spazio di archiviazione. Fai clic su "Svuota immondizia" per iniziare il processo.

Verrà visualizzata una finestra di dialogo popup che ti consente di scegliere se rimuovere i manifest senza tag come parte della pulizia. Queste sono immagini valide a cui non è assegnato alcun tag, quindi possono essere referenziate solo dal loro ID completo, come registry.digitalocean.com/<your-registry-name>/example-image:a1bc23 . L'eliminazione di questi manifest è generalmente auspicabile a meno che tu non li conservi intenzionalmente.

Garbage Collection mette il registro in uno stato di sola lettura fino a quando tutti i livelli inutilizzati non sono stati eliminati. Le nuove spinte verranno rifiutate per tutta la durata della pulizia. La raccolta non inizia fino al termine delle scritture esistenti, quindi potrebbe verificarsi un leggero ritardo dopo l'avvio del processo. I progressi vengono visualizzati nella pagina dashboard del registro nel pannello di controllo.

DigitalOcean non offre la raccolta automatica dei rifiuti. Tuttavia è possibile eseguire il processo utilizzando Doctl e l'API DigitalOcean in modo da poter scrivere il proprio script e programmarlo con cron .

Conclusione

Il Container Registry di DigitalOcean ti offre un modo conveniente per archiviare le immagini Docker. Si esegue l'autenticazione al registro utilizzando un token API DigitalOcean esistente. Tieni presente che i token API danno accesso totale al tuo account, non si limitano all'accesso al registro.

Se dovresti usare Container Registry a favore di Docker Hub dipende da cosa farai con le immagini. Se le distribuirai su DigitalOcean, ha senso affiancare le tue immagini alla tua infrastruttura, massimizzando le prestazioni. Docker Hub presenta vantaggi in altre aree, come la ricostruzione automatica delle immagini e le scansioni delle vulnerabilità che possono segnalare rapidamente problemi di sicurezza. Il servizio di DigitalOcean non ha nessuno di questi, concentrandosi invece sull'archiviazione di immagini pura e semplice.


Docker
  1. Come cercare, estrarre, elencare ed eliminare immagini Docker su Linux

  2. Come installare e ospitare il server OpenVPN con Docker

  3. Come distribuire un container nginx con Docker su Linode

  4. Come installare Docker e distribuire uno stack LAMP

  5. Come condividere le immagini Docker con altri

Come distribuire e gestire un contenitore Docker MongoDB

Come copiare file con Docker cp nel tuo Docker Container

Come utilizzare Docker Commit per modificare le immagini del contenitore

Come copiare file tra host e contenitore Docker

Procedura:Introduzione a Windows Containers e Docker

Introduzione a .NET Core e Docker e al registro dei contenitori Microsoft