3.1 Fondamenti del comando docker ps
Il comando docker ps è uno dei più utili nell'arsenale di Docker. Mostra l'elenco dei container in esecuzione e fornisce informazioni su di essi. In questa lezione esamineremo in dettaglio come utilizzare docker ps per controllare lo stato dei tuoi container e quali opzioni sono disponibili per ottenere informazioni più dettagliate.
Per impostazione predefinita, il comando docker ps mostra solo l'elenco dei container attualmente in esecuzione.
Sintassi
docker ps [OPTIONS]
Dove:
-
OPTIONS: parametri aggiuntivi per filtrare e formattare l'output.
Esempio di utilizzo base
docker ps
Questa chiamata base del comando docker ps mostrerà l'elenco di tutti i container in esecuzione. L'output includerà i seguenti campi:
- CONTAINER ID: identificatore univoco del container.
- IMAGE: l'immagine da cui è stato creato il container.
- COMMAND: il comando in esecuzione nel container.
- CREATED: tempo trascorso dalla creazione del container.
- STATUS: stato corrente del container (ad esempio, Up 5 minutes).
- PORTS: porte inoltrate.
- NAMES: nome del container.
Elenco di tutti i container
Per mostrare tutti i container, inclusi quelli arrestati, utilizza l'opzione -a:
docker ps -a
Questo comando mostrerà l'elenco di tutti i container mai avviati, indicando il loro stato corrente (esecuzione, arresto, ecc.).
3.2 Filtraggio dell'output
Docker ti permette di filtrare l'output del comando docker ps per mostrare solo quei container che soddisfano criteri specifici.
1. Filtraggio per stato
Per esempio, per visualizzare solo i container arrestati:
docker ps -f "status=exited"
2. Filtraggio per nome
Per visualizzare i container con un nome specifico o una sua parte:
docker ps -f "name=my_container"
3. Filtraggio per immagine
Per visualizzare i container creati da una specifica immagine:
docker ps -f "ancestor=nginx"
3.3 Formattazione dell'output
Puoi personalizzare l'output del comando docker ps per renderlo più leggibile o includere solo i campi di cui hai bisogno. Per farlo si utilizza il parametro --format.
Esempio di formattazione
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Questo esempio restituisce una tabella con l'identificativo del container, il suo nome e lo stato.
Colonne disponibili nella tabella
- {{.ID}}: identificativo del container.
- {{.Image}}: immagine del container.
- {{.Command}}: comando eseguito nel container.
- {{.CreatedAt}}: data di creazione del container.
- {{.RunningFor}}: tempo di esecuzione del container.
- {{.Status}}: stato attuale del container.
- {{.Ports}}: porte inoltrate.
- {{.Names}}: nome del container.
Esempi di utilizzo
Esempio 1: visualizzare solo gli identificativi dei container
Questo esempio mostrerà solo gli identificativi dei container in esecuzione. Utile per l'uso negli script.
docker ps -q
Esempio 2: visualizzare i container avviati nelle ultime 24 ore
docker ps --filter "since=24h"
Esempio 3: visualizzare i container con uno stato specifico e formattare l'output
Questo esempio restituisce una tabella con i nomi dei container, il loro stato e le porte inoltrate per tutti i container in esecuzione.
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 Scenari pratici
1. Monitoraggio dei container in esecuzione
Quando hai più container in esecuzione, il comando docker ps ti permette di controllare velocemente il loro stato attuale e assicurarti che tutto stia funzionando correttamente.
docker ps
2. Ricerca e rimozione dei container fermati
Dopo che i container terminano il loro lavoro, rimangono nel sistema finché non li rimuovi. Puoi utilizzare docker ps -a per trovare tutti i container fermati e successivamente eliminarli.
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. Automazione delle attività
Usare il comando docker ps negli script permette di automatizzare varie attività di amministrazione dei container. Ad esempio, puoi creare report sullo stato dei container o riavviare automaticamente i container se sono fermati.
if [ $(docker ps -q -f "name=my_container") ]; then
echo "Il container è in esecuzione"
else
docker start my_container
fi
Importante! Questo “codice” è scritto nel terminale di Linux. Forse, ti conviene studiarlo.
GO TO FULL VERSION