50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
9 minut pozostało
Narzędzia developerskie i DevOps

Prosty przewodnik po logach Docker Compose: jak je sprawdzać i zarządzać

Ada Lovegood By Ada Lovegood 9 minut czytania Zaktualizowano 23 lutego 2025
dzienniki docker

Chcesz wiedzieć, co robią aplikacje Docker w tle? Poznajmy tajne okno, zwane dziennikami, do twoich kontenerów, które pokazuje każdy ich ruch. Dzienniki są bardzo pomocne w rozwiązywaniu problemów. Ale zanim zaczniemy, przyjrzyjmy się szybko, czym są Docker i Docker Compose.

Docker pozwala spakować aplikacje w małe kontenery i uruchomić je na większości systemów operacyjnych bez żadnych dodatkowych zależności. To jak umieszczenie aplikacji w małych pudełkach zwanych kontenerami, które działają tak samo wszędzie. Zrozumienie kontenerów jest ważnym warunkiem wstępnym do nauki Docker Compose. Dlatego zachęcam cię do przeczytania najpierw naszego artykułu na temat korzyści z konteneryzacji.

Docker Compose jest dostarczany z Docker i upraszcza tworzenie wielu aplikacji kontenerowych poprzez łączenie ich usług, sieci i magazynu. Dzienniki kontenerów Docker i logowanie Docker Compose pomagają deweloperom zobaczyć, co robi każdy kontener.

Czy ciekawisz się dziennikami Docker Compose? Jesteś we właściwym miejscu. Ten artykuł wyjaśni podstawy dzienników Docker Compose i omówi bardziej zaawansowane szczegóły. Dowiedz się, jak maksymalnie wykorzystać Docker Compose w swoich projektach.

Znaczenie dzienników Docker Compose

Wyobraź sobie dewelopera, który uruchamia aplikację za pomocą Docker, ale pomija konfigurację dzienników Docker. Na początek wszystko wydaje się w porządku. Ale wkrótce użytkownicy natrafiają na błędy, a aplikacja zwalnia. Bez dzienników Docker deweloper nie może zobaczyć, co poszło nie tak wewnątrz kontenerów Docker. Dzienniki Docker Compose są jak szczegółowy zapis tych kontenerów. Rejestrują każdy szczegół tego, co się dzieje, co jest ważne dla późniejszego znajdowania i rozwiązywania problemów.

Jako developer lub administrator systemu, musisz rozumieć, co się dzieje wewnątrz i między wielowarstwowymi aplikacjami. W tym miejscu dzienniki Docker Compose działają jako przydatne narzędzie. Dlaczego więc te dzienniki są konieczne?

  • Rozwiązywanie problemów i debugowanie

Sprawdź dzienniki docker, jeśli aplikacja nie działa prawidłowo lub napotyka błędy. Dzienniki Docker są pierwszymi zasobami, które możesz sprawdzić, aby śledzić problem. Badając dzienniki docker, deweloperzy mogą zidentyfikować główną przyczynę i źródło problemów, niezależnie od tego, czy jest to błąd w kodzie, błędna konfiguracja czy problemy z zasobami.

  • Monitorowanie stanu aplikacji

Regularne monitorowanie dzienników aplikacji pomaga zrozumieć ogólny stan usług. Dzienniki mogą ujawnić wczesne znaki ostrzegawcze, takie jak powtarzające się błędy i powolne odpowiedzi. Zaobserwowanie tych wzorców wcześnie może zapobiec potencjalnym problemom w przyszłości.

  • Audyt i zgodność

W przypadku aplikacji, które muszą spełniać określone standardy, dzienniki docker są pierwszym dowodem na to, czy aplikacja zachowuje zgodność z wytycznymi. Te dzienniki odgrywają również istotną rolę w monitorowaniu autoryzowanych lub nieautoryzowanych działań.

  • Optymalizacja

Dzienniki są cennymi zasobami do optymalizacji oprogramowania poprzez dostarczanie danych wydajności. Na przykład deweloperzy mogą zidentyfikować powoli działające zapytania, nieefektywne ścieżki kodu lub niedostatecznie wykorzystane zasoby.

Tworzenie przepisu Docker: wdrażanie serwera webowego

W tej sekcji przejdziemy razem przez tworzenie przepisu Docker. Najpierw musimy coś zbudować, aby rozpocząć naszą podróż z dziennikami Docker Compose. Wdrażamy dla tego celu serwer webowy. Aby utworzyć plik Docker, po prostu uruchom nano plik Dockerfile w wybranym folderze na VPS z następującą zawartością, a następnie zapisz:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Czym zajmuje się każda linia tego kodu?

  • Zaczynamy od lekkiej bazy, nginx:alpine.
  • Następnie usuwamy domyślną stronę powitalną Nginx.
  • Potem upewniamy się, że serwer webowy nasłuchuje na porcie 80.
  • Na koniec uruchamiamy serwer Nginx za pomocą CMD.

Teraz nasz plik Docker jest gotowy. Przejdziemy do kolejnego kroku, czyli stworzenia pliku Docker Compose. Oto struktura docker-compose.yml plik:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

Rozłóżmy to, aby w pełni zrozumieć każdą część:

  • Używamy wersji 3.8.
  • W następnej linii nadajemy naszej usłudze nazwęweb“.
  • Następnie instruujemy Docker, aby zbudował nasz serwer sieciowy z bieżącego folderu.
  • Mapujemy port 8080 na hoście do portu 80 w naszym kontenerze, aby umożliwić serwerowi sieciowemu nawiązanie połączenia.
  • Na koniec konfiguracja volumes mapuje index.html z dysku hosta do kontenera. Później możesz utworzyć index.html plik z dowolną zawartością i umieścić go tam, gdzie Dockerfile i docker-compose.yml pliki istnieją.

Teraz pora uruchomić nasz kontener Docker za pomocą Docker Compose. Po prostu uruchamiamy docker-compose up.

uruchom kontener Docker za pomocą Docker Compose

Po uruchomieniu docker-compose up polecenia Docker pobierze wymagane obrazy z internetu i skonfiguruje je zgodnie z instrukcjami w naszych plikach konfiguracyjnych.

Aby sprawdzić, czy nasz serwer sieciowy działa, otwórz przeglądarkę, wpisz adres IP VPS i spróbuj uzyskać dostęp do portu 8080.

strona sieciowa w kontenerze

Warto zauważyć, że możesz użyć docker-compose up -d aby uruchomić kontener w tle.

Dostęp do dzienników za pomocą Docker Compose

Teraz nasz serwer sieciowy jest gotowy, uruchomiony i działający. Już generuje logi i zapisuje te informacje do późniejszego użytku. Dostęp do logów docker compose jest niezbędny do diagnozowania problemów i monitorowania. Ale jak możemy odczytać te logi? To właśnie do czego służy docker-compose logs Upewnij się, że jesteś w folderze, w którym znajduje się konfiguracja, i uruchom to polecenie.

Dostęp do dzienników za pomocą Docker Compose

Czasami możesz chcieć zobaczyć logi w czasie rzeczywistym, podczas gdy są generowane. Po prostu dodaj -f na końcu poprzedniego polecenia i uruchom docker-compose logs -f.

Dostęp do dzienników za pomocą Docker Compose

Niektóre aplikacje oparte na Docker mogą nie dostarczać znaczników czasu w swoich logach. Dlatego możesz użyć docker-compose logs -t aby dodać zapisany czas dla każdej linii logu.

Dostęp do dzienników za pomocą Docker Compose

Logi Docker mogą również wyświetlać najnowsze wpisy. Aby to zrobić, użyj docker-compose logs --tail 10 aby zobaczyć ostatnie 10 wpisów dziennika. Docker łączy logi z ostatnimi wpisami, a docker logs tail jest szczególnie przydatny, gdy chcesz szybko sprawdzić niedawną aktywność bez przewijania całej historii dziennika.

dostęp do logów za pomocą docker compose

Głównym celem korzystania z Docker Compose jest tworzenie aplikacji wielokontenerowych. Dlatego możesz potrzebować odczytać logi dla konkretnej usługi. Aby to zrobić, użyj docker-compose logs -f SERVICEpamiętając, aby zastąpić SERVICE z rzeczywistą nazwą swojej usługi.

dostęp do logów za pomocą docker

Logowanie Docker

Ekosystem Docker może stać się bardziej złożony dla zintegrowanych aplikacji, szczególnie w dużych środowiskach. Jak już wiemy, każdy kontener generuje logi. Dlatego mechanizm znany jako Logging Driver jest odpowiedzialny za odbieranie, dostarczanie i przechowywanie logów. Domyślnie Docker używa plików JSON dla Logging Driver, ale obsługuje również wiele innych sterowników, każdy ze swoimi zaletami i wadami.

Wszyscy zgadzają się, że logi są kluczowe w różnych obszarach, w tym przy rozwiązywaniu problemów i poprawie wydajności systemu. Poniżej omówimy dwa główne aspekty korzystania z logów kontenerów:

  • Monitorowanie: Głównym celem logów jest monitorowanie. Zazwyczaj ujawniają one ogólny stan naszych aplikacji konteneryzowanych.
  • Rozwiązywanie problemów: W przypadku problemów logi pomagają nam wykryć błędy aplikacji.

Ponieważ logi docker i docker compose są generowane na bieżąco, mogą zapełnić całą pamięć masową VPS. Dlatego potrzebujemy strategii zarządzania przestrzenią dyskową zwanej Log Rotation Policy. Aby utworzyć i użyć tę politykę, wróć do docker-compose.yml pliku i otwórz go. Następnie dodaj sekcję logging z poniższą konfiguracją:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

Możesz stale dostosowywać max-size i max-file do swoich potrzeb.

Modele dostarczania dzienników Docker

Inżynierowie mogą wybrać inny model logowania w bardziej zaawansowanych środowiskach niż domyślne sterowniki JSON, takie jak Syslog, fluentd i inne. Jednak ważne jest, aby pamiętać, że sterownik json-file jest odpowiedni do większości scenariuszy logowania i może nie być potrzeby odchodzenia od trybu domyślnego.

W zależności od architektury aplikacji lub wymagań organizacyjnych możesz być zmuszony do korzystania z centralnych rozwiązań logowania znanych jako Log Aggregators. Te usługi, takie jak Elasticsearch, Logstash, Kibana itp., są zaprojektowane aby odbierać logi z różnych źródeł, konsolidować je, przechowywać i analizować w jednej centralnej lokalizacji.

Z drugiej strony powinieneś przechowywać swoje logi przy użyciu bardziej ekonomicznych rozwiązań pamięci masowej. Rozważ scenariusz, w którym VPS używa szybkiej i drogiej pamięci masowej; może nie być ekonomiczne wykorzystywanie takich zasobów premium do przechowywania logów, które mogą być potrzebne tylko do wiadomości.

Dostępnych jest wiele modeli logowania, każdy ze swoimi zaletami i wadami. Niezbędne jest dokładne ocenę każdego modelu i wybór jednego w oparciu o swoje konkretne potrzeby.

Hosting Linux VPS

Postaw na ekonomiczny lub premium Linux VPS do hostowania strony internetowej lub zdalnego pulpitu, w najniższej dostępnej cenie. VPS Działa na Linux KVM dla większej wydajności i wykorzystuje wydajny sprzęt z pamięcią masową NVMe SSD dla większej szybkości.

Czytaj więcej

Wnioski

Zrozumienie logów Docker Compose jest kluczowe. Pomagają w efektywnym zarządzaniu i debugowaniu aplikacji Docker. Nauka dostępu do logów i monitorowania ich poprawia rozwiązywanie problemów i zwiększa wydajność oraz bezpieczeństwo aplikacji. Niezależnie od tego, czy rozwijasz czy administrujesz systemami, korzystanie z logów Docker Compose jest niezbędne. Zapewnia to, że zarządzanie kontenerami jest efektywne.

Często zadawane pytania

Jak filtrować dzienniki Docker Compose według czasu?

Docker Compose nie oferuje bezpośredniej metody filtrowania logów według czasu. Możesz jednak filtrować logi, przekazując je przez grep do dopasowania wzorców. Na przykład możesz użyć: docker-compose logs | grep "2023-04-06", zamieniając "2023-04-06" na konkretny wzorzec daty lub czasu, którego szukasz.

Jak zatrzymać kontenery uruchomione za pomocą Docker Compose?

Przejdź do katalogu zawierającego plik docker-compose.yml i uruchom polecenie docker-compose down.

Jak ręcznie usunąć pliki dziennika?

Zamiast konfigurować rotację logów w pliku docker-compose.yml, możesz ręcznie usunąć pliki logów Docker JSON z /var/lib/docker/containers/<container_id>/. Przed zrobieniem tego powinieneś zidentyfikować ID kontenera Docker za pomocą docker ps -a.

Czy mogę obserwować dzienniki Docker w czasie rzeczywistym? 

Tak, możesz. W tym celu użyj polecenia docker logs razem z opcją -f lub --follow. Spowoduje to wyświetlenie dziennika Docker dla Ciebie.

Udostępnij

Więcej z bloga

Czytaj dalej.

Metalowy kontener osłonięty świecącą, neonowo-cyjanową kopułą siatkową, z tytułem artykułu i logo Cloudzy na głębokoniebieskim tle.
Narzędzia developerskie i DevOps

Najczęstsze błędy w zabezpieczaniu Docker, których należy unikać w 2026 roku

Docker może działać na produkcji przez wiele miesięcy bez widocznych problemów. Kontenery startują, aplikacje odpowiadają, nic się nie sypie. Potem jeden otwarty port lub błędnie skonfigurowane uprawnienie powoduje

Rexa CyrusRexa Cyrus Czas czytania: 15 minut
Trójwymiarowa świecąca niebieska struktura sześcienna reprezentująca kontenery Docker, obok tekstu 'Portainer vs Yacht: Which Docker UI Should You Choose' oraz logo Cloudzy.
Narzędzia developerskie i DevOps

Portainer vs Yacht: który interfejs graficzny dla Docker wybrać w 2026 roku?

Zarządzanie kontenerami Docker przez CLI sprawdza się przy prostych konfiguracjach, ale słabo skaluje się wraz ze wzrostem złożoności. Gdy liczba kontenerów rośnie, ręczne śledzenie stanów, logów i aktualizacji staje się podatne na błędy

Rexa CyrusRexa Cyrus Czytanie w 13 minut
Narzędzia do ciągłej integracji
Narzędzia developerskie i DevOps

Najlepsze narzędzia CI/CD do optymalizacji przepływów pracy DevOps w 2026 roku

 Świat tworzenia oprogramowania zmienia się szybciej niż kiedykolwiek. Żeby nie zostać w tyle, warto postawić na metodyki DevOps i Agile

Ada LovegoodAda Lovegood 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.