3.1 Comando docker stats
Docker offre uno strumento integrato per monitorare i container in tempo reale — il comando docker stats
. Questo comando permette di tracciare le principali metriche di performance dei container, come l'utilizzo di CPU, memoria, rete e disco. Diamo un'occhiata a come usare docker stats per ottenere una panoramica dello stato e delle prestazioni dei tuoi container.
Il comando docker stats
fornisce statistiche dinamiche sul funzionamento dei container in tempo reale. Mostra le seguenti metriche per ogni container:
- CPU %: percentuale di utilizzo della CPU da parte del container.
- MEM USAGE / LIMIT: utilizzo della memoria da parte del container e limite impostato.
- MEM %: percentuale di utilizzo della memoria da parte del container.
- NET I/O: traffico di rete (in entrata e in uscita).
- BLOCK I/O: numero di operazioni di input/output del disco.
- PIDS: numero di processi eseguiti all'interno del container.
Uso base del comando docker stats
Eseguendo il comando docker stats
senza parametri si visualizzano le metriche per tutti i container in esecuzione:
docker stats
Esempio di output del comando docker stats
:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d9b100f2f636 my_nginx 0.07% 1.24MiB / 1.952GiB 0.06% 1.68kB / 0B 0B / 12.3MB 2
fa3f3f3f3f3f my_postgres 2.13% 230.5MiB / 1.952GiB 11.52% 2.12MB / 2.05MB 85.6MB / 45.2MB 10
Monitoraggio di un container specifico
Puoi monitorare le metriche di un container specifico specificando il suo nome o ID:
docker stats my_nginx
3.2 Impostazioni del comando docker stats
Parametri del comando docker stats
Il comando docker stats
supporta diverse opzioni che permettono di configurare l'output dei dati:
--all
o-a
: mostra le metriche per tutti i container, inclusi quelli fermati.--no-stream
: mostra le metriche una sola volta e termina l'esecuzione del comando.--format
: personalizza l'output dei dati utilizzando template.
Esempio di utilizzo del parametro --no-stream
Output delle metriche una sola volta per tutti i container:
docker stats --no-stream
Esempio di utilizzo del parametro --format
Output formattato dei dati:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Esempio di output:
CONTAINER ID CPU % MEM USAGE / LIMIT
d9b100f2f636 0.07% 1.24MiB / 1.952GiB
fa3f3f3f3f3f 2.13% 230.5MiB / 1.952GiB
3.3 Utilizzo pratico di docker stats
Esempio 1: monitoraggio del carico sul server
Puoi utilizzare docker stats per monitorare i container sul server e identificare quelli con un alto utilizzo della CPU o della memoria. Questo ti aiuterà a ottimizzare l'uso delle risorse e migliorare le prestazioni delle applicazioni.
docker stats
Esempio 2: monitoraggio di un container specifico durante i test
Quando testi nuove versioni delle applicazioni o cambi le configurazioni, puoi monitorare le metriche di un container specifico per assicurarti che non ci siano impatti negativi sulle prestazioni.
docker stats my_test_container
Esempio 3: integrazione con sistemi di monitoraggio
Puoi integrare l'output di docker stats
con sistemi di monitoraggio esterni utilizzando l'opzione --format
per creare un formato di output compatibile con il tuo strumento di monitoraggio.
docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"
Limitazioni del comando docker stats
Anche se docker stats
fornisce metriche utili in tempo reale, ha alcune limitazioni:
- Metriche limitate: il comando mostra solo metriche principali e non fornisce informazioni dettagliate sullo stato dei container.
- Uso manuale: docker stats è comodo da utilizzare manualmente, ma per un monitoraggio automatizzato e allarmi è meglio utilizzare strumenti specializzati come Prometheus e Grafana.
GO TO FULL VERSION