4.1 Podstawy komendy docker logs
Komenda docker logs
— przydatne narzędzie do monitorowania i debugowania kontenerów. Dzięki niej developerzy i administratorzy systemów mogą przeglądać logi kontenerów, co pomaga w diagnozie problemów i analizie działania aplikacji. W tym wykładzie szczegółowo omówimy, jak korzystać z komendy docker logs
, jakie parametry są dostępne i jak efektywnie zarządzać logami.
Komenda docker logs
wyświetla logi określonego kontenera. Logi te zawierają wszystkie wiadomości zapisane przez procesy wewnątrz kontenera na standardowe strumienie wyjścia (stdout)
i błędów (stderr)
.
Składnia
docker logs [OPTIONS] CONTAINER
Gdzie:
-
CONTAINER
: nazwa lub identyfikator kontenera, którego logi chcesz zobaczyć. -
OPTIONS
: dodatkowe parametry do konfiguracji wyjścia logów.
Przykład podstawowego użycia
Ta komenda wyświetli wszystkie zgromadzone logi kontenera my_container
.
docker logs my_container
4.2 Parametry komendy docker logs
Komenda docker logs
obsługuje kilka opcji, które pozwalają dostosować wyświetlanie logów do konkretnych potrzeb.
1. Podgląd logów w czasie rzeczywistym
Do podglądu logów w czasie rzeczywistym używa się parametru -f (follow)
. Ten parametr pozwala śledzić aktualizacje logów w miarę ich pojawiania, podobnie jak komenda tail -f
.
docker logs -f my_container
2. Ograniczenie liczby wyświetlanych linii
Możesz ograniczyć liczbę linii wyświetlanych przez komendę docker logs
za pomocą parametru --tail
. To przydaje się, jeśli potrzebujesz tylko ostatnich linii logów, a nie całego dziennika.
docker logs --tail 100 my_container
Ten przykład wyświetli tylko ostatnie 100 linii logów kontenera my_container
.
3. Wyświetlanie logów od określonego czasu
Parametr --since
pozwala wyświetlać logi zaczynając od wskazanego czasu. Czas można podać w formacie znacznika czasowego (np. 2023-07-20T15:00:00) lub formacie relatywnym (np. 1h dla logów z ostatniej godziny).
docker logs --since "2023-07-20T15:00:00" my_container
Lub
docker logs --since 1h my_container
4. Wyświetlanie logów do określonego czasu
Parametr --until
pozwala wyświetlać logi do wskazanego czasu. Format czasu jest taki sam jak dla parametru --since
.
docker logs --until "2023-07-20T16:00:00" my_container
Lub
docker logs --until 10m my_container
5. Łączenie stdout
i stderr
Domyślnie komenda docker logs
wyświetla zarówno standardowy strumień wyjściowy (stdout)
, jak i standardowy strumień błędów (stderr)
. Możesz określić, które strumienie wyświetlić, używając parametrów --stdout
i --stderr
.
docker logs --stdout my_container
Ten przykład wyświetli tylko komunikaty ze standardowego strumienia wyjściowego.
4.3 Przykłady użycia
Przykład 1: podgląd ostatnich linii logów i śledzenie aktualizacji
Ten przykład wypisze ostatnie 50 linii logów kontenera my_container i będzie śledził nowe wpisy w czasie rzeczywistym.
docker logs -f --tail 50 my_container
Przykład 2: wyświetlanie logów z ostatnich 24 godzin
Ten przykład wypisze wszystkie logi, które zostały zgromadzone w ciągu ostatnich 24 godzin dla kontenera my_container
.
docker logs --since 24h my_container
Przykład 3: wyświetlanie logów z określonego przedziału czasowego
Ten przykład wypisze logi zarejestrowane w okresie od 15:00 do 16:00 dnia 20 lipca 2023 roku dla kontenera my_container
.
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 Praktyczne scenariusze
1. Debugowanie aplikacji
Jeśli Twoja aplikacja działa niepoprawnie albo "crashuje", przeglądanie logów może pomóc w diagnozowaniu problemu. Użyj polecenia docker logs, aby znaleźć błędy i ostrzeżenia w logach.
docker logs my_app_container
2. Monitorowanie pracy serwera
Do monitorowania pracy serwera w czasie rzeczywistym możesz użyć polecenia docker logs
z opcją -f
.
docker logs -f web_server_container
To pozwala śledzić żądania i odpowiedzi serwera w czasie rzeczywistym.
3. Analiza wydajności
Jeśli chcesz przeanalizować wydajność aplikacji w określonym przedziale czasowym, użyj parametrów --since
i --until
.
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
GO TO FULL VERSION