9.1 Riscoprire Docker Hub
Dai, impariamo meglio cosa è Docker Hub. Te lo ricordo: questa è la principale registry pubblica di Docker, dove gli utenti possono archiviare, condividere e scoprire immagini container già pronte. La piattaforma offre accesso a milioni di container creati sia da organizzazioni ufficiali sia dalla community. In questa lezione, vedremo come cercare ed effettuare il download di immagini pronte da Docker Hub in modo efficace.
Funzioni principali del servizio Docker Hub
Docker Hub è un servizio cloud che permette di caricare immagini in un archivio centralizzato e recuperarli da lì. Il servizio funge da piattaforma dove gli sviluppatori possono condividere le loro immagini e utilizzare le soluzioni create da altri. Le funzioni principali di Docker Hub includono:
- Repository pubblici e privati: Possibilità di archiviare immagini sia accessibili a tutti che limitate a determinati utenti.
- Build automatiche (automated builds): Integrazione con sistemi di controllo versione come GitHub per creare automaticamente immagini a ogni modifica del codice.
- Webhooks: Configurazione di azioni automatiche che vengono eseguite all'aggiornamento delle immagini.
9.2 Ricerca di immagini pronte
1. Utilizzo dell'interfaccia web di Docker Hub
- Vai sul sito Docker Hub: apri Docker Hub nel tuo browser.
- Ricerca delle immagini: digita il nome dell'immagine o le parole chiave relative al tuo progetto nella barra di ricerca. Ad esempio, per cercare l'immagine di Nginx, digita "nginx" e premi Enter.
- Visualizzazione dei risultati: nei risultati di ricerca verranno mostrate le immagini corrispondenti. Le immagini ufficiali sono contrassegnate come "Official" e sono supportate da Docker o dalle organizzazioni corrispondenti. Le immagini create da altri utenti mostrano il nome utente o dell'organizzazione.
- Scelta dell'immagine: clicca sull'immagine che ti interessa per vedere la descrizione, i tag disponibili, le istruzioni per l'uso e altre informazioni utili.
2. Ricerca di immagini tramite linea di comando
Docker permette anche di cercare immagini direttamente dalla linea di comando utilizzando il comando docker search
.
Esempio di comando:
docker search nginx
Questo comando restituirà un elenco di immagini che contengono nginx
nel nome o nella descrizione. L'output mostrerà il nome dell'immagine, la descrizione, il numero di stelle (valutazioni), l'indicazione dello stato ufficiale e le informazioni sulle build automatiche.
Esempio di output:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 Scaricare le immagini
Dopo aver trovato l'immagine necessaria, puoi scaricarla sulla tua macchina locale usando il comando docker pull
.
1. Scaricare un'immagine specifica
Per scaricare un'immagine specifica, usa la seguente sintassi:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Dove:
- NAME: nome dell'immagine.
- TAG: (opzionale) tag dell'immagine. Di default viene usato il tag
latest
, se non ne viene specificato un altro. - @DIGEST: (opzionale) SHA256 identificatore dell'immagine.
Esempio di scaricamento di un'immagine:
Questo esempio scaricherà l'ultima immagine di nginx
con il tag latest
.
docker pull nginx:latest
2. Scaricare un'immagine con un tag specifico
Se ti serve un tag specifico dell'immagine, specificalo dopo i due punti. Questo esempio scaricherà l'immagine di Ubuntu versione 20.04.
docker pull ubuntu:20.04
3. Controllare le immagini scaricate
Dopo aver scaricato un'immagine, puoi controllare quali immagini sono presenti sulla tua macchina locale con il comando docker images
.
Esempio di comando:
L'output del comando mostrerà una lista di tutte le immagini scaricate con indicazione del repository, del tag, dell'identificatore dell'immagine, della data di creazione e della dimensione.
docker images
9.4 Esempi di utilizzo di immagini pronte
1. Avviare un web server Nginx
Dopo aver scaricato l'immagine di Nginx, puoi avviare rapidamente un container basato su di essa.
Esempio:
Questo esempio avvia un container Nginx
in modalità detached e reindirizza la porta 80 del container alla porta 8080 della macchina host. Ora puoi accedere al web server Nginx
aprendo il browser e inserendo http://localhost:8080.
docker run -d -p 8080:80 nginx
2. Avviare un database MySQL
Docker Hub fornisce immagini pronte di database, come MySQL, che semplificano il deployment di database per lo sviluppo e i test.
Esempio:
Questo esempio avvia un container MySQL, imposta una password per l'utente root e reindirizza la porta 3306 del container alla porta 3306 della macchina host.
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. Utilizzo dell'immagine Redis per caching
Redis è un sistema di caching popolare, e Docker Hub offre un'immagine pronta di Redis che puoi usare per deploy rapidi.
Esempio:
Questo esempio avvia un container Redis e reindirizza la porta 6379 del container alla porta 6379 della macchina host.
docker run -d -p 6379:6379 --name my_redis redis:latest
GO TO FULL VERSION