6.1 Funzioni principali del comando docker logs
I log dei container sono una parte importante della gestione e del monitoraggio delle applicazioni Docker. I log aiutano a tracciare il comportamento dei container, diagnosticare problemi e capire come funzionano le applicazioni all'interno dei container. In questa lezione vedremo nel dettaglio come utilizzare il comando docker logs
per gestire i log dei container.
Funzioni principali del comando docker logs
Il comando docker logs
serve per estrarre e visualizzare i log dei container. Permette di:
- Visualizzare l'output standard (stdout) e l'output standard degli errori (stderr) del container.
- Filtrare e monitorare i log in tempo reale.
- Cercare e analizzare i log per diagnosticare problemi.
6.2 Utilizzo del comando docker logs
1. Visualizzare i log del container
Per visualizzare i log del container usa il comando:
docker logs <container_id_or_name>
Esempio:
docker logs my_container
Questo comando mostrerà tutti i log del container my_container
.
2. Monitoraggio dei log in tempo reale
Per monitorare i log in tempo reale usa il flag -f
(o --follow
):
docker logs -f <container_id_or_name>
Esempio:
docker logs -f my_container
Questo comando mostrerà i nuovi log man mano che vengono generati.
3. Limitare il numero di righe mostrate
Per limitare il numero di righe mostrate dal comando docker logs
, usa il flag --tail
:
docker logs --tail <number_of_lines> <container_id_or_name>
Esempio:
docker logs --tail 10 my_container
Questo comando mostrerà le ultime 10 righe dei log del container my_container
.
4. Mostrare i log a partire da un determinato momento
Per mostrare i log a partire da un determinato momento, usa il flag --since
:
docker logs --since <timestamp> <container_id_or_name>
Esempio:
docker logs --since 2022-01-01T00:00:00 my_container
Questo comando mostrerà i log del container my_container
a partire dal 1° gennaio 2022.
5. Mostrare i log fino a un determinato momento
Per mostrare i log fino a un determinato momento, usa il flag --until
:
docker logs --until <timestamp> <container_id_or_name>
Esempio:
docker logs --until 2022-01-02T00:00:00 my_container
Questo comando mostrerà i log del container my_container
fino al 2 gennaio 2022.
6.3 Esempi di utilizzo di docker logs
Esempio 1: Diagnostica di un errore dell'applicazione
Se la tua applicazione all'interno del container si è chiusa inaspettatamente a causa di un errore, puoi usare docker logs
per diagnosticare la causa:
docker logs my_app_container
Visualizzare i log può aiutarti a capire cosa è andato storto e perché l'applicazione si è chiusa con un errore.
Esempio 2: Monitoraggio del servizio
Per monitorare in tempo reale il funzionamento di un web service, usa il flag -f
:
docker logs -f web_service_container
Questo comando ti permette di vedere tutti i nuovi log che arrivano al web service.
Esempio 3: Analisi dei log per un determinato periodo
Se devi analizzare i log per un determinato periodo, usa i flag --since
e --until
:
docker logs --since "2023-07-01" --until "2023-07-02" my_app_container
Questo comando mostrerà i log del container my_app_container
per il 1 luglio 2023.
6.4 Configurazione dei driver di log di Docker
Docker supporta diversi driver di log che possono essere configurati per i contenitori. I principali driver di log includono:
-
json-file
: Di default. I log vengono salvati in file in formato JSON. syslog
: I log vengono inviati al journal di sistema (syslog).journald
: I log vengono inviati al sistema journald.-
gelf
: I log vengono inviati ai server che supportano il protocollo GELF (Graylog Extended Log Format). fluentd
: I log vengono inviati al server Fluentd.
Installazione del driver di log
Per installare un driver di log, usa il flag --log-driver
al momento dell'avvio del contenitore:
docker run --log-driver <driver_name> <container_image>
Esempio:
docker run --log-driver syslog my_app_image
Questo esempio avvia un contenitore utilizzando il driver di log syslog.
Configurazione dei parametri di log
Puoi specificare i parametri di log utilizzando il flag --log-opt
:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
GO TO FULL VERSION