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

Introduzione alle immagini Docker predefinite

Le immagini sono la componente fondamentale della finestra mobile. In questa guida, discuteremo cosa sono le immagini Docker, come costruirle, come gestirle e come usarle.

Iniziamo.

Prerequisiti

  • Prima di iniziare a utilizzare le immagini della finestra mobile, devi installare la finestra mobile sul tuo sistema.
  • Questa guida utilizza Ubuntu, ma i passaggi dovrebbero essere simili per altre distribuzioni.
  • Un account utente con privilegi di root.

Cosa dovresti sapere?

Prima di iniziare a lavorare con le immagini Docker, è importante sapere quali sono.

Le immagini Docker sono i componenti fondamentali di Docker. Docker utilizza le immagini per creare contenitori. Le immagini sono essenzialmente modelli che contengono tutte le informazioni necessarie per creare un contenitore, come il codice, le librerie e il runtime.

Un contenitore Docker è un'istanza di runtime di un'immagine. Contiene tutto ciò che contiene l'immagine, oltre a eventuali modifiche o aggiunte apportate mentre il contenitore è in esecuzione. Ad esempio, se installi una nuova applicazione sul tuo sistema, la nuova applicazione verrà installata nel tuo container.

Gestione delle immagini con la CLI

La gestione delle immagini con Docker CLI è un must per gli amministratori Docker. Docker CLI è un potente strumento che ti offre il controllo completo su immagini e contenitori. In questa sezione imparerai come utilizzare Docker CLI per gestire le tue immagini.

1. Esegui il comando seguente per assicurarti che Docker sia in esecuzione.

sudo systemctl status docker

2. Se Docker non è in esecuzione, avvialo con il comando seguente.

sudo systemctl start docker

3. Aggiungi il tuo account utente al gruppo Docker. Esci e accedi nuovamente per rendere effettive le modifiche.

sudo usermod -aG docker $(whoami)

4. Se esegui il comando docker image, vedrai un elenco di tutte le opzioni disponibili per il comando docker image.

docker image

Come mostrato di seguito, il comando Docker image ha molte opzioni, ma alcune di quelle più comuni sono:

  • ls :elenca le immagini sul tuo sistema.
  • tira :estrae un'immagine da un registro.
  • spingi :invia un'immagine a un registro.
  • crea :crea una nuova immagine da un Dockerfile.
  • rm :rimuovi un'immagine dal tuo sistema.
  • tag: Tagga un'immagine con un nome.

Per iniziare, diamo un'occhiata a come elencare le immagini sul tuo sistema.

5. Esegui il comando docker image ls per elencare le immagini sul tuo host. Il comando docker image ls elenca tutte le immagini sul tuo host, inclusi i repository da cui sono state estratte. L'ID, il repository, il tag e la dimensione dell'immagine.

docker image ls

Supponi di voler rimuovere un'immagine dal tuo host. Puoi usare il comando rm. Puoi utilizzare il nome dell'immagine o l'ID immagine per rimuovere un'immagine.

docker image rm <image-name>
docker image rm <image-id>

Nel caso in cui utilizzi l'ID, assicurati che i primi caratteri nell'ID siano univoci per le immagini nell'elenco. In altre parole, le prime lettere dell'ID non devono essere utilizzate da altre immagini.

6. Ad esempio, per rimuovere l'immagine ubuntu:12.04, puoi utilizzare uno dei seguenti comandi. Nota che possiamo usare solo i primi caratteri dell'ID(5b1) per rimuovere l'immagine poiché non ci sono altre immagini con quei primi caratteri.

docker image rm ubuntu:12.04
docker image rm 5b1

L'immagine ubuntu:12.04 verrà eliminata dal tuo host insieme a ogni livello utilizzato per creare l'immagine, come mostrato di seguito.

7. Elenca di nuovo le immagini sul tuo sistema per verificare che l'immagine ubuntu:12.04 non sia più elencata.

docker image ls

Nota che il comando docker image ls e il comando docker images fanno esattamente la stessa cosa. Tuttavia, il secondo è ora deprecato poiché Docker preferisce che gli sviluppatori utilizzino il comando docker con i suoi sottocomandi corretti. Abbiamo la stessa cosa con il comando docker rmi. Questo comando viene utilizzato per rimuovere un'immagine e tutti i suoi livelli esattamente come l'immagine mobile rm. Docker consiglia di utilizzare docker rm con i suoi sottocomandi corretti.

docker image ls
docker images

Abbiamo lo stesso risultato.

Finora, hai rimosso un'immagine inutilizzata alla volta. Cosa succede se desideri rimuovere due o più immagini non utilizzate contemporaneamente?

È qui che il comando prune torna utile. Il comando prune può essere utilizzato per rimuovere tutte le immagini inutilizzate dal tuo host in una volta sola. Puoi usare il comando prune per rimuovere tutte le immagini penzolanti, tutte le immagini inutilizzate o una combinazione di entrambe. Le immagini penzolanti sono le immagini a cui non è associato almeno un contenitore.

8. Esegui il comando docker image prune per rimuovere tutte le immagini inutilizzate/pendenti dal tuo sistema.

docker image prune

Come puoi vedere, il comando prune ha rimosso tutte le immagini inutilizzate e i relativi livelli dal tuo host e ti ha risparmiato molto spazio su disco nel processo.

9. Elenca di nuovo le immagini sul tuo host per verificare che le immagini siano davvero scomparse. Ora che sai come elencare, rimuovere e sfoltire le immagini dal tuo host. Questi comandi di base ti aiuteranno a mantenere il tuo sistema pulito e organizzato.

docker image ls

Ispezione delle immagini Docker

Potresti pensare alle immagini e ai contenitori Docker come a delle mistiche scatole nere. Ti stai chiedendo che tipo di magia sta succedendo dentro di loro. In questa sezione sfatiamo parte del misticismo dando un'occhiata a cosa c'è in un'immagine Docker e come puoi utilizzare tali informazioni a tuo vantaggio.

1. Docker offre un modo per ispezionare il contenuto di un'immagine. Il comando docker inspect prende un percorso verso un'immagine e stampa una grande quantità di informazioni su di essa, come mostrato nell'esempio seguente.

docker inspect ubuntu

Come mostrato di seguito, l'output del comando precedente contiene molte informazioni. Vedi tutte le informazioni qui in un formato chiamato array JSON.

Le informazioni nell'output vengono visualizzate come un archivio di valori-chiave. Puoi usare uno strumento Linux come la pipe (|) per grep l'output per una parola chiave specifica. Quindi, puoi utilizzare l'output convogliato per qualsiasi scopo desideri. Gli esempi seguenti mostrano come puoi utilizzare questa operazione.

2. Esegui il comando seguente per salvare l'output del comando docker inspect in un file chiamato image-inspect.txt.

docker image inspect ubuntu > image-inspect.txt

3. Quindi, usa un editor a tua scelta per aprire il file e controllarne il contenuto.

sudo nano image-inspect.txt

L'output del comando docker inspect contiene molte informazioni su un'immagine, come mostrato di seguito. All'interno dell'editor, puoi navigare facilmente come scorrere su/giù nell'editor per esaminare diverse informazioni. Puoi modificare le informazioni se vuoi.

Puoi anche usare l'argomento --format per formattare l'output in un modo specifico.

4. Ad esempio, per stampare l'ID dell'immagine Ubuntu, puoi utilizzare il seguente comando.

docker image inspect ubuntu --format='{{.ID}}'

5. Elenca l'immagine per verificare l'ID immagine.

docker image ls

6. Eseguire il comando seguente per reindirizzare l'output del comando docker inspect al comando more. Ciò ti consentirà di impaginare l'output in modo da poter vedere tutte le informazioni in esso contenute.

docker image inspect ubuntu | more

Questa volta vedrai il Nome host (b32714f341a6 ) in ContainerConfig sezione, come mostrato di seguito.

7. Cosa fare se si desidera il valore del nome host (b32714f341a6 ) solo? Puoi ottenerlo eseguendo il comando seguente.

docker image inspect ubuntu --format='{{.ContainerConfig.Hostname}}'

Come puoi vedere, puoi utilizzare il comando docker inspect con gli strumenti Linux per eseguire ulteriori filtri. Come una gamma. Ad esempio, per elencare tutti gli indirizzi IP nell'intervallo 192.168.0.0/16. E puoi anche combinarlo con altri strumenti di scripting per fare cose ancora più interessanti.

Utilizzo dei tag Docker 

Mentre continui a lavorare con le immagini Docker, ti consigliamo di iniziare a utilizzare i tag. I tag ti consentono di identificare e gestire facilmente le tue immagini. Ad esempio, puoi creare un tag per ogni ambiente in cui viene utilizzata un'immagine o per ogni cliente o cliente per cui viene utilizzata un'immagine. In questo modo è facile trovare l'immagine specifica di cui hai bisogno e tenere traccia di quali immagini sono state utilizzate per quali scopi.

La sintassi per aggiungere un tag a un'immagine è la seguente:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Il tuo tag può essere qualsiasi stringa ASCII valida e può contenere lettere minuscole e maiuscole, cifre, trattini bassi, punti e trattini. Non può iniziare con un punto o un trattino e non deve superare i 128 caratteri. Diamo un'occhiata a un esempio.

1. Per aggiungere un tag a un'immagine, dobbiamo prima conoscere il nome o l'ID dell'immagine che vogliamo taggare. Possiamo elencare tutte le immagini disponibili sul nostro sistema eseguendo il comando seguente:

docker image ls

2. Ora esegui il comando seguente per aggiungere il tag "myubuntu" all'immagine.

docker tag ubuntu:latest ubuntu:myubuntu

3. Ora, se eseguiamo nuovamente il comando docker image ls, possiamo vedere che la nostra immagine è stata contrassegnata con "myubuntu".

Nota che i tag sono solo alias. Ciò significa che un'immagine può avere più tag ma tutti fanno riferimento alla stessa immagine di origine. Quindi puoi usare qualsiasi tag tu voglia, purché abbia senso per te. Ed è una buona idea aggiungere tag quando crei immagini in modo da poterne facilmente tenere traccia in un secondo momento.

4. Diamo un'occhiata a un altro esempio. Supponiamo di voler creare un'immagine di Ubuntu con il tag "original". Possiamo farlo eseguendo il seguente comando:

docker tag myubuntu:latest myubuntu:original

Il comando sopra creerà un'immagine contrassegnata con "originale" basata sull'immagine contrassegnata con "latest". Ora abbiamo due immagini di myubuntu:una contrassegnata con ultime e uno contrassegnato con originale , ma puntano allo stesso ID immagine di origine(2b4cba85892a ).

Utilizzo dei registri Docker

Ora che abbiamo una conoscenza di base di cosa sono le immagini Docker, diamo un'occhiata al lavoro con i registri. Docker Hub è il registro pubblico più popolare, ma sono disponibili altre opzioni.

Docker Hub è un registro pubblico che può essere utilizzato gratuitamente sia per scopi personali che commerciali. Ha un'ampia varietà di immagini disponibili e puoi anche creare le tue immagini e condividerle con altri. Per utilizzare Docker Hub, devi semplicemente creare un account e quindi installare il client Docker. È quindi possibile utilizzare il comando di ricerca della finestra mobile per trovare le immagini e il comando pull della finestra mobile per scaricarle.

Finora abbiamo lavorato con l'immagine Ubuntu disponibile su Docker Hub, un registro pubblico Docker. Tuttavia, puoi anche creare un registro privato per archiviare le tue immagini.

Distribuzione di un registro Docker privato

Ci sono alcuni motivi per cui potresti voler utilizzare un registro privato:

  • Per memorizzare immagini che sono solo per uso interno. Forse hai immagini che contengono informazioni sensibili e non vuoi che siano disponibili pubblicamente. O forse vuoi tenere traccia di quali immagini sono state utilizzate nel tuo ambiente e non vuoi che altri possano scaricarle senza il tuo permesso.
  • Per velocizzare i download di immagini nel CI/CD della pipeline di distribuzione memorizzandole nella cache in locale. Eseguire il proprio registro e archiviarlo autonomamente è un modo eccellente per collegarlo e migliorare il proprio sistema CI/CD.

1. Verifica se il tuo host Docker è pronto per creare un registro locale.

docker version

2. Eseguire il comando docker run riportato di seguito per avere un registro locale e privato attivo e funzionante. Dove:

  • -p 5000:5000 =mappa la porta 5000 sull'host Docker alla porta 5000 sul container
  • --restart=always =assicura che il contenitore venga sempre riavviato in caso di errore
  • --name register =nome del tuo registro privato
  • registry:2 =l'immagine che verrà utilizzata per creare il contenitore del registro
docker run -d -p 5000:5000 --restart=always --name registry registry:2

3. Esegui il comando seguente per elencare tutti i contenitori in esecuzione sul tuo host Docker.

docker ps 

Vedrai il seguente output. Questo output indica che il contenitore del registro è attivo e in esecuzione nell'host Docker. La notazione :::5000->5000/tcp è una scorciatoia che associa la porta dell'host Docker alla porta del contenitore del registro.

Ora che abbiamo il nostro registro privato attivo e funzionante, diamo un'occhiata a come aggiungere immagini ad esso. L'esempio seguente mostra come aggiungere l'immagine Ubuntu al registro. Innanzitutto, dovrai estrarre l'immagine da Docker Hub al tuo host locale e assegnargli un tag specifico. Invierai quindi l'immagine appena taggata nel tuo registro privato. Infine, elimina l'immagine di Ubuntu dal tuo host locale ed estrai l'immagine dal tuo registro privato per testarla.

4. Esegui il comando seguente per scaricare l'immagine Ubuntu con il tag 20.04 da Docker Hub al tuo host locale.

 docker image pull ubuntu:20.04

5. Quindi, esegui il comando seguente per contrassegnare l'immagine Ubuntu scaricata come "my-ubuntu". Puoi utilizzare qualsiasi tag desideri, ma è una buona idea utilizzare qualcosa che abbia senso per la tua organizzazione.

docker tag ubuntu:20.04 localhost:5000/my-ubuntu 

6. Esegui il comando seguente per eseguire il push dell'immagine appena contrassegnata nel registro privato in esecuzione sulla porta localhost:5000.

docker push localhost:5000/my-ubuntu

7. Esegui il comando seguente per eliminare le immagini Ubuntu memorizzate nella cache locale dal tuo localhost per testare il tuo registro privato.

docker image remove ubuntu:20.04 && docker image remove localhost:5000/my-ubuntu

8. Una volta rimosse le immagini di Ubuntu memorizzate nella cache locale, puoi eseguire il comando seguente per estrarre l'immagine dal tuo registro privato.

docker pull localhost:5000/my-ubuntu

9. Esegui il comando seguente per elencare tutte le immagini sul tuo host Docker.

docker image ls

Vedrai my-ubuntu immagine elencata come estratta dal tuo registro privato, come mostrato di seguito. Questo output conferma che l'immagine è stata estratta con successo dal tuo registro privato e che il tuo registro privato funziona correttamente.

Spingere, estrarre e firmare immagini

Docker offre alcune opzioni della riga di comando per spingere, estrarre e cercare immagini. In questa sezione imparerai come usare quei comandi per gestire le tue immagini nei registri dalla tua riga di comando sul tuo host. Questo esempio usa Docker Hub per dimostrare, ma puoi usare qualsiasi altro registro.

1. Eseguire il comando Docker login per accedere al registro Docker Hub. Fornisci il tuo nome utente e password quando richiesto. Se non disponi di un account Docker Hub, puoi crearne uno gratuitamente su https://hub.docker.com/.

docker login

2. Una volta effettuato l'accesso, sei pronto per inviare le tue immagini. Supponiamo di voler inviare l'ultima immagine di Ubuntu al Docker Hub. Dovresti anche taggare l'immagine con un nome significativo in modo da poterla fare facilmente riferimento in futuro. In questo esempio, taggherai l'immagine come howtoforge/ubuntu:latest. Sentiti libero di usare il nome del tag che desideri.

docker tag ubuntu:latest howtoforge/ubuntu:latest
docker push howtoforge/ubuntu:latest

3. Apri il tuo browser web e accedi al Docker Hub. Vedrai la tua immagine lì. Questo repository è stato creato in base al tuo nome utente e al tag che hai utilizzato. In questo esempio, il repository è howtoforge/ubuntu . Vai alla scheda tag e vedrai che il tuo tag è stato applicato correttamente (ultimo ).

4. Esegui il comando seguente per rimuovere l'immagine Ubuntu locale per testare il pull.

docker image rm howtoforge/ubuntu

Elenca le immagini sul tuo sistema per verificare che l'immagine di Ubuntu sia stata rimossa.

docker image ls

5. Esegui il comando seguente per scaricare l'immagine my-ubuntu dal tuo Docker Hub.

docker pull howtoforge/ubuntu

6. Elenca di nuovo le immagini sul tuo host per verificare che l'immagine di Ubuntu sia stata estratta. Dovresti vedere l'immagine my-ubuntu sul tuo sistema.

docker image ls

Mentre lavori con le immagini, potresti voler cercare immagini specifiche nei registri Docker. Puoi utilizzare il comando di ricerca Docker per cercare immagini nei registri Docker.

7. Esegui il comando di ricerca nella finestra mobile per vedere tutte le opzioni ei parametri disponibili.

man docker search

Dovresti vedere il seguente output. Puoi vedere utili opzioni di filtro come:

  • stelle= :filtra i risultati della ricerca in base al numero di stelle che l'immagine ha su Docker Hub. Puoi usarlo per trovare le immagini più popolari.
  • è-automatizzato=(vero|falso) :filtra i risultati della ricerca per includere o escludere build automatizzate. Puoi usarlo per trovare immagini che sono o non sono build automatizzate.
  • è-ufficiale=(vero|falso) :filtra i risultati della ricerca per includere o escludere immagini ufficiali. Puoi usarlo per trovare immagini supportate ufficialmente dall'azienda dietro l'immagine. Ad esempio, Ubuntu è la società ufficiale dietro l'immagine di Ubuntu. Nginx è la società ufficiale dietro l'immagine di Nginx. Dovresti sempre utilizzare immagini ufficiali ove possibile poiché sono state testate dall'azienda e hanno maggiori probabilità di essere stabili. Quando riscontri problemi con un'immagine ufficiale, puoi ottenere aiuto dall'azienda che fornisce l'immagine.

8. Ad esempio, esegui il comando docker search --filter=stars=4 ubuntu per cercare l'immagine ubuntu con 4 o più stelle su Docker Hub.

docker search --filter=stars=4 ubuntu

9. Esegui il comando seguente per cercare l'immagine di Ubuntu che è un'immagine ufficiale di Ubuntu.

docker search --filter=is-official=true ubuntu

L'output dovrebbe essere un elenco di repository che contengono l'immagine Ubuntu e indica che si tratta di un'immagine Ubuntu ufficiale (OK ), come mostrato di seguito.

10. Esegui il comando seguente per cercare l'immagine Ubuntu che ha almeno 100 stelle su Docker Hub ed è un'immagine ufficiale di Ubuntu.

docker search --filter="stars=100" --filter=is-official=true ubuntu

Le immagini Docker sono un ottimo modo per archiviare il codice e la configurazione dell'applicazione. Ma allo stesso tempo, è facile accumulare molte immagini inutilizzate, in particolare se stai testando diverse applicazioni o provando configurazioni diverse. Potresti scoprire che non hai più bisogno di alcune delle immagini nei tuoi registri.

Puoi eliminare un'immagine navigando nel repository che contiene l'immagine e facendo clic sul pulsante Elimina.

11. Ad esempio, su Docker Hub, vai al repository howtoforge/ubuntu. Fai clic su Impostazioni> Elimina archivio . Conferma di voler eliminare il repository digitando il nome del repository. Fai clic su Elimina .

Torna alla dashboard e vedrai che il repository howtoforge/ubuntu è ora eliminato insieme all'immagine di Ubuntu.

Conclusione

Congratulazioni! Ora sei arrivato alla fine dell'articolo. Ora dovresti avere una conoscenza di base delle immagini Docker e di come lavorarci. Se vuoi saperne di più su Docker, ti suggeriamo di leggere la documentazione ufficiale di Docker dove puoi trovare maggiori informazioni su argomenti quali:

  • File Docker
  • Rete
  • Volumi
  • Servizi
  • Modalità sciame

Docker
  1. Iniziare con Zsh

  2. Iniziare con ls

  3. Iniziare con PostgreSQL su Linux

  4. Come condividere le immagini Docker con altri

  5. Come modificare le immagini Docker

Iniziare con cPanel

Iniziare con SiteApps

Introduzione all'esercitazione Docker di Azure

Mantieni gestibili le tue immagini Docker con Docker Image Prune

Condivisione di immagini Docker su Docker Hub

Guida introduttiva a Buildah per la gestione dei container Linux