Sobes.tech
Junior

Kaip peržiūrėti logus veikiantį konteinerį?

sobes.tech AI

Atsakymas iš AI

# Peržiūrėti visus konteinerio žurnalus
docker logs <container_id_or_name>

# Peržiūrėti paskutines 100 eilutes žurnalų
docker logs --tail 100 <container_id_or_name>

# Peržiūrėti žurnalus nuo konteinerio paleidimo pradžios
docker logs --follow <container_id_or_name>

# Peržiūrėti žurnalus nuo nurodyto laiko
# Laiko formatas: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Peržiūrėti žurnalus tam tikru laikotarpiu
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Išsaugoti žurnalus į failą
docker logs <container_id_or_name> > container_logs.txt

Žurnalo įrašymas konteineryje grindžiamas standartinių išvesties (stdout) ir klaidų (stderr) srautų nukreipimu į konteinerio vidų. Docker renka šiuos srautus ir leidžia jiems prieiti per komandą docker logs.

Alternatyvūs metodai:

  1. Docker loggavimo tvarkyklės naudojimas: Docker demonų konfigūracija žurnalų siuntimui į centralizuotas žurnalų sistemas (pvz., ELK Stack, Splunk, CloudWatch Logs) naudojant įvairius logging drivers. Tai yra pageidautinas metodas gamybos aplinkose.

  2. Tomo mapavimas: Tomo montavimas iš pagrindinės sistemos į konteinerį, kurioje programa rašo žurnalus.

    # docker-compose.yml pavyzdys
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Tomo mapavimas
    

    Po to žurnalai yra prieinami pagrindinėje mašinoje nurodytu keliu.

  3. Žurnalų agentų diegimas: Žurnalų agentų (pvz., Filebeat, Fluentd) diegimas konteineryje arba sidecar konteineryje, kuris renka žurnalus ir siunčia juos į centralizuotą sistemą.