4.1 Fondamenti del comando docker logs
Il comando docker logs
— uno strumento super comodo per monitorare e fare debugging dei container. Con questo comando, sviluppatori e sysadmin possono controllare i log dei container, aiutandoli a diagnosticare problemi e analizzare come funzionano le loro applicazioni. Durante questa lezione daremo un'occhiata dettagliata su come usare il comando docker logs
, quali opzioni sono disponibili e come gestire i log in modo efficace.
Il comando docker logs
mostra i log di un container specificato. Questi log includono tutti i messaggi registrati dai processi all'interno del container sugli stream di output standard (stdout)
e di errori (stderr)
.
Sintassi
docker logs [OPTIONS] CONTAINER
Dove:
-
CONTAINER
: il nome o l'identificatore del container di cui vuoi vedere i log. -
OPTIONS
: opzioni aggiuntive per configurare l'output dei log.
Esempio di utilizzo base
Questo comando mostra tutti i log accumulati del container my_container
.
docker logs my_container
4.2 Parametri del comando docker logs
Il comando docker logs
supporta diverse opzioni che ti permettono di configurare l'output dei log in base alle esigenze specifiche.
1. Visualizzazione dei log in tempo reale
Per visualizzare i log in tempo reale, usa il parametro -f (follow)
. Questo parametro ti permette di monitorare gli aggiornamenti dei log man mano che compaiono, simile al comando tail -f
.
docker logs -f my_container
2. Limitare il numero di righe visualizzate
Puoi limitare il numero di righe visualizzate dal comando docker logs
usando il parametro --tail
. È utile se ti servono solo le righe finali dei log, anziché l'intero registro.
docker logs --tail 100 my_container
Questo esempio visualizzerà solo le ultime 100 righe dei log del container my_container
.
3. Visualizzazione dei log da un certo momento
Il parametro --since
consente di visualizzare i log a partire da un momento specificato. Il momento può essere definito in formato timestamp (ad esempio, 2023-07-20T15:00:00) o in formato relativo (ad esempio, 1h per i log dell'ultima ora).
docker logs --since "2023-07-20T15:00:00" my_container
Oppure
docker logs --since 1h my_container
4. Visualizzazione dei log fino a un certo momento
Il parametro --until
consente di visualizzare i log fino a un momento specificato. Il formato del momento è uguale a quello del parametro --since
.
docker logs --until "2023-07-20T16:00:00" my_container
Oppure
docker logs --until 10m my_container
5. Combinazione di stdout
e stderr
Di default, il comando docker logs
visualizza sia lo standard output (stdout)
che lo standard error (stderr)
. Puoi specificare quali flussi visualizzare usando i parametri --stdout
e --stderr
.
docker logs --stdout my_container
Questo esempio visualizzerà solo i messaggi dallo standard output.
4.3 Esempi di utilizzo
Esempio 1: visualizzare le ultime righe dei log e monitorare gli aggiornamenti
Questo esempio mostrerà le ultime 50 righe dei log del container my_container e seguirà i nuovi aggiornamenti in tempo reale.
docker logs -f --tail 50 my_container
Esempio 2: mostrare i log delle ultime 24 ore
Questo esempio mostrerà tutti i log accumulati nelle ultime 24 ore per il container my_container
.
docker logs --since 24h my_container
Esempio 3: mostrare i log per un determinato intervallo di tempo
Questo esempio mostrerà i log registrati tra le 15:00 e le 16:00 del 20 luglio 2023 per il container my_container
.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Scenari pratici
1. Debug dell'applicazione
Se la tua applicazione non funziona correttamente o si “blocca”, controllare i log può aiutarti a diagnosticare il problema. Usa il comando docker logs per trovare errori e avvisi nei log.
docker logs my_app_container
2. Monitoraggio del server
Per monitorare in tempo reale il lavoro del server puoi usare il comando docker logs
con l'opzione -f
.
docker logs -f web_server_container
Questo permette di tenere traccia delle richieste e delle risposte del server in tempo reale.
3. Analisi delle prestazioni
Se vuoi analizzare le prestazioni dell'applicazione per un certo periodo di tempo, usa i parametri --since
e --until
.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
GO TO FULL VERSION