Ako si zobraziť logy v bežiacom kontajneri?
sobes.tech AI
Odpoveď od AI
# Zobrazenie všetkých logov kontajnera
docker logs <container_id_or_name>
# Zobrazenie posledných 100 riadkov logov
docker logs --tail 100 <container_id_or_name>
# Zobrazenie logov od spustenia kontajnera
docker logs --follow <container_id_or_name>
# Zobrazenie logov od určitého času
# Formát času: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>
# Zobrazenie logov za určitý časový úsek
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>
# Uloženie logov do súboru
docker logs <container_id_or_name> > container_logs.txt
Logging v kontajneroch je založený na presmerovaní štandardného výstupu (stdout) a chýb (stderr) aplikácie vo vnútri kontajnera. Docker tieto toky zbiera a sprístupňuje ich cez príkaz docker logs.
Alternatívne prístupy:
-
Použitie ovládačov logovania Docker: Konfigurácia démona Docker tak, aby odosielal logy do centralizovaných systémov logovania (napríklad ELK Stack, Splunk, CloudWatch Logs) pomocou rôznych ovládačov logovania. Toto je preferovaná metóda pre produkčné prostredia.
-
Mapovanie volume: Pripojenie volume z hostiteľského systému do kontajnera, kde aplikácia zapisuje logy.
# príklad docker-compose.yml services: my_app: image: my_app_image volumes: - /var/log/myapp:/app/logs # Mapovanie volumeNásledne sú logy dostupné na hostiteľskom stroji na určenom mieste.
-
Inštalácia agentov na zber logov: Nasadenie agenta na zber logov (napríklad, Filebeat, Fluentd) v kontejnere alebo ako sidecar, ktorý zbiera logy a odosiela ich do centralizovaného systému.