Jak wyświetlić logi w działającym kontenerze?
sobes.tech AI
Odpowiedź od AI
# Wyświetl wszystkie logi kontenera
docker logs <container_id_or_name>
# Wyświetl ostatnie 100 linii logów
docker logs --tail 100 <container_id_or_name>
# Wyświetl logi od początku działania kontenera
docker logs --follow <container_id_or_name>
# Wyświetl logi od określonego czasu
# Format czasu: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>
# Wyświetl logi z określonego okresu czasu
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>
# Zapisz logi do pliku
docker logs <container_id_or_name> > container_logs.txt
Logowanie w kontenerach opiera się na przekierowaniu standardowych strumieni wyjścia (stdout) i błędów (stderr) aplikacji wewnątrz kontenera. Docker zbiera te strumienie i udostępnia je za pomocą polecenia docker logs.
Alternatywne podejścia:
-
Użycie sterowników logowania Docker: Konfiguracja demona Docker do wysyłania logów do scentralizowanych systemów logowania (np. ELK Stack, Splunk, CloudWatch Logs) za pomocą różnych sterowników logowania. To jest preferowana metoda dla środowisk produkcyjnych.
-
Mapowanie wolumenów: Montowanie wolumenu z systemu hosta do kontenera, do którego aplikacja zapisuje logi.
# przykładowy plik docker-compose.yml services: my_app: image: my_app_image volumes: - /var/log/myapp:/app/logs # Mapowanie wolumenuPo tym logi są dostępne na maszynie hosta pod wskazaną ścieżką.
-
Instalacja agentów logowania: Deployment agenta logowania (np. Filebeat, Fluentd) w kontenerze lub jako sidecar, który zbiera logi i wysyła je do scentralizowanego systemu.