Jak zobrazit logy v běžícím kontejneru?
sobes.tech AI
Odpověď od AI
# Zobrazení všech logů kontejneru
docker logs <container_id_or_name>
# Zobrazení posledních 100 řádků logů
docker logs --tail 100 <container_id_or_name>
# Zobrazení logů od spuštění kontejneru
docker logs --follow <container_id_or_name>
# Zobrazení logů 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>
# Zobrazení logů za určité časové období
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>
# Uložení logů do souboru
docker logs <container_id_or_name> > container_logs.txt
Logging v kontejnerech je založen na přesměrování standardního výstupu (stdout) a chyb (stderr) aplikace uvnitř kontejneru. Docker tyto toky sbírá a zpřístupňuje je přes příkaz docker logs.
Alternativní přístupy:
-
Použití ovladačů logování Docker: Konfigurace démona Docker tak, aby odesílal logy do centralizovaných systémů logování (například ELK Stack, Splunk, CloudWatch Logs) pomocí různých ovladačů logování. To je preferovaná metoda pro produkční prostředí.
-
Mapování svazků: Připojení svazku z hostitelského systému do kontejneru, kam aplikace zapisuje logy.
# příklad docker-compose.yml services: my_app: image: my_app_image volumes: - /var/log/myapp:/app/logs # Mapování svazkuPo tomto jsou logy dostupné na hostitelském stroji na určené cestě.
-
Instalace agentů pro sběr logů: Nasazení agenta pro sběr logů (například Filebeat, Fluentd) v kontejneru nebo jako sidecar, který shromažďuje logy a odesílá je do centralizovaného systému.