Creare e Gestire Container Docker
I container Docker sono una tecnologia fondamentale per la containerizzazione delle applicazioni, permettendo di eseguire il software in un ambiente isolato e coerente. Saper creare e gestire container Docker è essenziale per chiunque lavori nello sviluppo software o nell’amministrazione di sistemi. In questa guida, esploreremo i comandi base per creare e gestire container Docker, coprendo la creazione, l’avvio, la gestione delle risorse e la rimozione dei container.
1. Creare un Container
La creazione di un container Docker avviene utilizzando il comando docker run
, che crea e avvia un container da un’immagine Docker.
Comando Base per Creare e Avviare un Container
docker run -d --name my_container nginx
- -d: Esegue il container in modalità detach (in background).
- –name: Assegna un nome al container.
- nginx: Specifica l’immagine Docker da utilizzare per creare il container.
Questo comando crea e avvia un container basato sull’immagine nginx
, eseguendolo in background con il nome my_container
.
Esempio di Creazione di un Container con Porte Mappate
docker run -d --name my_web_app -p 8080:80 nginx
- -p 8080:80: Mappa la porta 8080 dell’host alla porta 80 del container, rendendo il servizio Nginx accessibile tramite
http://localhost:8080
.
2. Visualizzare i Container
Puoi visualizzare l’elenco dei container in esecuzione (o fermati) utilizzando il comando docker ps
.
Visualizzare i Container in Esecuzione
docker ps
Questo comando elenca tutti i container attualmente in esecuzione, mostrando informazioni come l’ID del container, il nome, l’immagine utilizzata, lo stato e le porte esposte.
Visualizzare Tutti i Container (Inclusi i Fermati)
docker ps -a
Il flag -a
elenca tutti i container, inclusi quelli fermati.
3. Fermare e Riavviare un Container
Puoi fermare un container in esecuzione e riavviarlo utilizzando i comandi docker stop
e docker start
.
Fermare un Container
docker stop my_container
Questo comando ferma il container chiamato my_container
. Il container rimane fermato fino a quando non viene riavviato o rimosso.
Riavviare un Container
docker start my_container
Questo comando riavvia il container fermato chiamato my_container
.
Riavviare un Container Fermato (Comando Unico)
Puoi fermare e riavviare un container con un unico comando:
docker restart my_container
4. Accedere a un Container in Esecuzione
Puoi accedere alla shell di un container in esecuzione utilizzando il comando docker exec
. Questo è utile per eseguire comandi all’interno del container o per esplorare il file system del container.
Esempio di Accesso alla Shell di un Container
docker exec -it my_container bash
- -it: Esegue il comando in modalità interattiva con un terminale collegato.
- bash: Apre una shell Bash all’interno del container
my_container
.
Se il container non ha bash
, puoi utilizzare sh
come shell alternativa:
docker exec -it my_container sh
5. Gestire le Risorse dei Container
Puoi monitorare e gestire le risorse utilizzate dai container, come la CPU e la memoria, utilizzando il comando docker stats
.
Visualizzare le Statistiche delle Risorse
docker stats
Questo comando mostra una tabella interattiva con le statistiche in tempo reale delle risorse utilizzate dai container in esecuzione, inclusi l’utilizzo della CPU, della memoria e della rete.
6. Salvare i Dati con Volumi Docker
Per preservare i dati tra riavvii o aggiornamenti dei container, puoi utilizzare i volumi Docker. I volumi montano una directory del sistema host all’interno del container.
Creare un Container con un Volume
docker run -d --name my_container -v /host/path:/container/path nginx
In questo esempio, i dati scritti nella directory /container/path
all’interno del container saranno conservati nella directory /host/path
del sistema host.
7. Visualizzare i Log dei Container
Puoi visualizzare i log di un container in esecuzione per monitorare l’output dell’applicazione o per diagnosticare eventuali problemi.
Esempio di Visualizzazione dei Log
docker logs my_container
Seguire i Log in Tempo Reale
docker logs -f my_container
Il flag -f
segue i log in tempo reale, aggiornandosi man mano che nuovi log vengono generati.
8. Rimuovere Container
Puoi rimuovere un container fermato utilizzando il comando docker rm
.
Rimuovere un Singolo Container
docker rm my_container
Rimuovere Più Container
Puoi rimuovere più container specificando i loro nomi o ID separati da uno spazio:
docker rm container1 container2
Forzare la Rimozione di un Container in Esecuzione
docker rm -f my_container
Il flag -f
forza la rimozione di un container in esecuzione, fermandolo prima di rimuoverlo.
Rimuovere Tutti i Container Fermati
docker rm $(docker ps -a -q)
Questo comando rimuove tutti i container fermati. L’opzione -q
restituisce solo gli ID dei container.
Conclusione
Gestire container Docker è una competenza essenziale per chi lavora con applicazioni containerizzate. Con i comandi base come docker run
, docker ps
, docker stop
, e docker rm
, puoi creare, avviare, fermare e rimuovere container in modo efficiente. Saper accedere alla shell di un container, monitorare le risorse e gestire i volumi ti permette di mantenere un controllo completo sull’ambiente di esecuzione, garantendo che le tue applicazioni siano sempre performanti e ben gestite.