Sobes.tech
Junior

Kako pregledati logove u aktivnom kontejneru?

sobes.tech АИ

Одговор од АИ

# Prikaz svih logova kontejnera
docker logs <container_id_or_name>

# Prikaz poslednjih 100 redova logova
docker logs --tail 100 <container_id_or_name>

# Prikaz logova od pokretanja kontejnera
docker logs --follow <container_id_or_name>

# Prikaz logova od određenog vremena
# Format vremena: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Prikaz logova u određenom vremenskom periodu
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Čuvanje logova u fajl
docker logs <container_id_or_name> > container_logs.txt

Logovanje u kontejnerima se zasniva na preusmeravanju standardnih tokova izlaza (stdout) i grešaka (stderr) aplikacije unutar kontejnera. Docker prikuplja ove tokove i omogućava pristup putem komande docker logs.

Alternativni pristupi:

  1. Korišćenje Docker-ovih upravljača za logovanje: Konfiguracija demona Docker da šalje logove u centralizovane sisteme za logovanje (npr. ELK Stack, Splunk, CloudWatch Logs) pomoću različitih upravljača za logovanje. Ovo je preferirani metod za produkcione okoline.

  2. Mapiranje volumena: Montiranje volumena sa host sistema u kontejner, gde aplikacija zapisuje logove.

    # primer docker-compose.yml
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Mapiranje volumena
    

    Nakon toga, logovi su dostupni na host mašini na specificiranoj putanji.

  3. Instalacija agenata za logovanje: Deployovanje agenta za logovanje (npr. Filebeat, Fluentd) u kontejner ili kao sidecar, koji prikuplja logove i šalje ih u centralizovani sistem.