Sobes.tech
Junior

Come visualizzare i log in un contenitore in esecuzione?

sobes.tech AI

Risposta dell'AI

# Visualizza tutti i log del contenitore
docker logs <container_id_or_name>

# Visualizza le ultime 100 righe di log
docker logs --tail 100 <container_id_or_name>

# Visualizza i log dall’avvio del contenitore
docker logs --follow <container_id_or_name>

# Visualizza i log da un momento specifico
# Formato orario: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Visualizza i log in un intervallo di tempo specifico
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Salva i log in un file
docker logs <container_id_or_name> > container_logs.txt

Il logging nei container si basa sul reindirizzamento dei flussi standard di output (stdout) e di errore (stderr) dell’applicazione all’interno del container. Docker raccoglie questi flussi e li rende disponibili tramite il comando docker logs.

Approcci alternativi:

  1. Utilizzo di driver di logging Docker: Configurare il demone Docker per inviare i log a sistemi di logging centralizzati (ad esempio, ELK Stack, Splunk, CloudWatch Logs) usando vari driver di logging. Questo metodo è preferibile in ambienti di produzione.

  2. Mapping dei volumi: Montare un volume dal sistema host all’interno del container, dove l’applicazione scrive i log.

    # esempio di docker-compose.yml
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Mapping del volume
    

    Dopo, i log sono accessibili sulla macchina host nel percorso specificato.

  3. Installazione di agenti di logging: Distribuire un agente di logging (ad esempio, Filebeat, Fluentd) nel container o come sidecar, che raccoglie i log e li invia a un sistema centralizzato.