Chcesz wiedzieć, co aplikacje Dockera robią za kulisami? Dowiedzmy się więcej o tajnym oknie, zwanym dziennikami, w twoich kontenerach, które pokazują każdy ich ruch. Dzienniki są bardzo pomocne przy rozwiązywaniu problemów. Ale zanim zaczniemy, rzućmy okiem na to, czym są Docker i Docker Compose.
Docker umożliwia pakowanie aplikacji w małe kontenery i uruchamianie ich na większości systemów operacyjnych bez żadnych zależności. To jak umieszczanie aplikacji w małych pudełkach zwanych kontenerami, które mogą działać wszędzie w ten sam sposób. Znajomość kontenerów jest ważnym warunkiem wstępnym nauki tworzenia Dockera. Zachęcam więc najpierw do zapoznania się z naszym blogiem korzyści płynące z konteneryzacji.
Docker Compose jest dostarczany z Dockerem i upraszcza tworzenie wielu aplikacji kontenerowych, łącząc ich usługi, sieci i pamięć masową. Dzienniki kontenerów Docker i rejestrowanie Docker Compose pomagają programistom zobaczyć, co robi każdy kontener.
Czy interesują Cię dzienniki tworzenia platformy Docker? Jesteś we właściwym miejscu. W tym blogu wyjaśnione zostaną podstawy dzienników Docker Compose i omówione bardziej zaawansowane szczegóły. Dowiedz się, jak najlepiej wykorzystać Docker Compose w swoich projektach.
Znaczenie dzienników tworzenia platformy Docker
Wyobraź sobie, że programista uruchamia aplikację za pomocą Dockera, ale pomija konfigurowanie dzienników Dockera. Na początku wszystko wydaje się w porządku. Ale wkrótce użytkownicy znajdują błędy, a aplikacja zwalnia. Bez dzienników Dockera programista nie może zobaczyć, co poszło nie tak w kontenerach Dockera. Dzienniki Docker Compose przypominają szczegółowy zapis tych kontenerów. Rejestrują każdy szczegół tego, co się dzieje, co jest ważne dla późniejszego wyszukiwania i rozwiązywania problemów.
Jako programista lub administrator systemu musisz zrozumieć, co dzieje się wewnątrz i pomiędzy aplikacjami wielołańcuchowymi. W tym miejscu dzienniki Docker Compose działają jako przydatne narzędzie. Dlaczego więc te dzienniki są potrzebne?
-
Rozwiązywanie problemów i debugowanie
Sprawdź dzienniki dokera, gdy aplikacja nie działa poprawnie lub napotyka błędy. Dzienniki platformy Docker to pierwsze zasoby, do których możesz zajrzeć, aby prześledzić problem. Badając dzienniki dokera, programiści mogą wskazać pierwotną 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 sygnały ostrzegawcze, takie jak powtarzające się błędy i powolne reakcje. Wczesna obserwacja tych wzorców może zapobiec potencjalnym problemom w przyszłości.
-
Audyt i zgodność
W przypadku aplikacji, które muszą spełniać określone standardy, dzienniki dokerów są pierwszym dowodem pokazującym, czy aplikacja jest zgodna z wytycznymi. Dzienniki te odgrywają również zasadniczą rolę w monitorowaniu autoryzowanych lub nieautoryzowanych działań.
-
Optymalizacja
Dzienniki są cennym źródłem optymalizacji oprogramowania, dostarczającym danych o wydajności. Na przykład programiści mogą zidentyfikować wolno działające zapytania, nieefektywne ścieżki kodu lub niewykorzystane zasoby.
Tworzenie przepisu na Docker: wdrażanie serwera WWW
W tej sekcji omówimy wspólne tworzenie receptury Dockera. Najpierw musimy coś zbudować, aby rozpocząć naszą podróż z dziennikami Docker Compose. Wdróżmy w tym celu serwer WWW. Aby utworzyć plik Dockerfile, po prostu uruchom nano plik Docker w żądanym folderze na serwerze VPS z następującą zawartością, a następnie zapisz go:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Co więc robi każda linia tego kodu?
- Zaczynamy od lekkiej bazy, nginx:alpejski.
- Następnie usuwamy domyślną stronę powitalną Nginx.
- Następnie upewniamy się, że serwer WWW nasłuchuje na porcie 80.
- Na koniec uruchamiamy serwer Nginx CMD.
Teraz, gdy nasz plik Dockerfile jest już gotowy, możemy przejść do kolejnego kroku, jakim jest utworzenie 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
Podzielmy to na części, aby całkowicie zrozumieć każdą część:
- Używamy wersji 3.8.
- W następnym wierszu nazywamy naszą usługę „sieć“.
- Następnie instruujemy Dockera, aby zbudował nasz serwer WWW z bieżącego folderu.
- Łączymy port 8080 na naszym hoście z portem 80 w naszym kontenerze, aby umożliwić naszemu serwerowi WWW nawiązanie połączenia.
- Na koniec mapy konfiguracji woluminów index.html z dysku hosta do kontenera. Później możesz utworzyć plik index.html plik z dowolną zawartością i umieść go w odpowiednim miejscu Plik Dockera I docker-compose.yml istnieją pliki.
Teraz nadszedł czas, aby uruchomić nasz kontener Docker za pomocą Docker Compose. Po prostu biegamy docker — komponowanie.

Po uruchomieniu docker — komponowanie polecenie, Docker pobierze wymagane obrazy z Internetu i skonfiguruje je zgodnie z instrukcjami zawartymi w naszych plikach konfiguracyjnych.
Aby sprawdzić, czy nasz serwer WWW działa, otwórz przeglądarkę internetową, wpisz adres IP VPS i poproś o dostęp do portu 8080.

Na marginesie, 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 WWW jest gotowy, działa i działa. Już generuje logi i przechowuje te informacje do późniejszego wykorzystania. Dostęp do dzienników tworzenia okna dokowanego jest niezbędny do rozwiązywania problemów i monitorowania. Ale jak możemy odczytać te dzienniki? To jest gdzie dzienniki tworzenia dokera przydaje się. Upewnij się, że znajdujesz się w folderze, w którym istnieje konfiguracja, i uruchom to polecenie.

Czasami możesz chcieć zobaczyć bieżącą wersję generowanych dzienników. Po prostu dodaj -f na końcu poprzedniego polecenia i uruchom dzienniki tworzenia dokera -f.

Niektóre aplikacje oparte na platformie Docker mogą nie udostępniać znaczników czasu w swoich dziennikach. Dlatego możesz użyć dzienniki tworzenia dokera -t aby dodać zarejestrowany czas dla każdej linii dziennika.

Dzienniki platformy Docker mogą również wyświetlać najnowsze wpisy. Aby to osiągnąć, użyj dzienniki tworzenia dokerów – ogon 10 aby wyświetlić 10 ostatnich wpisów dziennika. Docker tworzy ogon dziennika i podobnie ogon dziennika dokowanego jest szczególnie przydatny, gdy chcesz szybko sprawdzić ostatnią aktywność bez przewijania całej historii dziennika.

Podstawowym celem korzystania z Docker Compose jest tworzenie aplikacji wielokontenerowych. Dlatego może być konieczne przeczytanie określonych dzienników dla żądanej usługi. Aby to zrobić, użyj tworzenie dzienników dokowanych -f USŁUGA, pamiętając o wymianie PRACA z rzeczywistą nazwą usługi.

Rejestrowanie Dockera
Ekosystem Dockera może stać się bardziej złożony w przypadku aplikacji konwergentnych, zwłaszcza w dużych środowiskach. Jak już wiemy, każdy kontener generuje logi. Dlatego za odbieranie, dostarczanie i przechowywanie logów odpowiada mechanizm znany jako sterownik rejestrowania. Domyślnie Docker używa plików JSON dla sterownika rejestrowania, ale obsługuje także różne inne sterowniki, każdy z ich zaletami i wadami.
Wszyscy zgadzają się, że logi są kluczowe w różnych obszarach, w tym w rozwiązywaniu problemów i zwiększaniu wydajności systemu. Poniżej omówimy dwa główne aspekty korzystania z dzienników kontenerów:
- Monitorowanie: Głównym celem logów jest monitorowanie. Zwykle ujawniają ogólny stan naszych aplikacji w kontenerach.
- Rozwiązywanie problemów: W przypadku problemów logi pomagają nam wykryć usterki aplikacji.
Ponieważ dzienniki dokerów i dzienniki tworzenia doków są generowane w sposób ciągły, mogą zapełnić całą pamięć VPS. Dlatego potrzebujemy strategii zarządzania miejscem na dysku zwanej polityką rotacji dzienników. Aby utworzyć i używać tej polityki, wróć do docker-compose.yml plik i otwórz go. Następnie dodaj sekcję rejestrowania 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 się dostosowywać maksymalny rozmiar I max-plik zgodnie z Twoimi potrzebami.
Modele dostarczania dzienników platformy Docker
Inżynierowie mogą wybrać inny model rejestrowania w bardziej zaawansowanych środowiskach niż domyślne sterowniki JSON, takie jak Syslog, fluentd i inne. Należy jednak pamiętać, że sterownik pliku JSON jest odpowiedni dla większości scenariuszy rejestrowania 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 rozwiązań do centralnego rejestrowania, znanych jako agregatory logów. Usługi te, m.in Elastyczne wyszukiwanie, Logstash, Kibana itp. służą do odbierania logów z różnych źródeł oraz konsolidowania, przechowywania i analizowania ich w jednym centralnym miejscu.
I odwrotnie, kłody należy przechowywać przy użyciu bardziej opłacalnych rozwiązań do przechowywania. Rozważ scenariusz, w którym Twój VPS wykorzystuje szybką i kosztowną pamięć masową; wykorzystanie takich zasobów premium do przechowywania dzienników, które mogą być potrzebne jedynie do wykorzystania w przyszłości, może nie być ekonomiczne.
Dostępnych jest wiele modeli rejestrowania, każdy ma zalety i wady. Niezbędna jest uważna ocena każdego modelu i wybór tego w oparciu o konkretne potrzeby.
Zdobądź ekonomiczny lub premium Linux VPS do hostowania swojej witryny internetowej lub zdalnego pulpitu, w najniższej cenie. VPS Działa na platformie Linux KVM w celu zwiększenia wydajności i działa na wydajnym sprzęcie z pamięcią masową SSD NVMe w celu zwiększenia szybkości.
Przeczytaj więcejWniosek
Zrozumienie dzienników Docker Compose jest kluczowe. Pomagają dobrze zarządzać i debugować aplikacje Docker. Nauka uzyskiwania dostępu do tych dzienników i ich monitorowania usprawnia rozwiązywanie problemów oraz zwiększa wydajność i bezpieczeństwo aplikacji. Niezależnie od tego, czy tworzysz systemy, czy administrujesz nimi, korzystanie z dzienników Docker Compose jest niezbędne. Dbają o efektywność zarządzania kontenerami.
Często zadawane pytania
Jak mogę filtrować dzienniki Docker Compose według czasu?
Docker Compose nie oferuje bezpośredniej metody filtrowania dzienników według czasu. Można jednak filtrować dzienniki, przesyłając je przez grep w celu dopasowania wzorca. Na przykład możesz użyć: dzienniki tworzenia dokerów | grep „2023-04-06”, zastępując „2023-04-06” konkretnym wzorcem daty lub godziny, którego szukasz.
Jak zatrzymać kontenery uruchomione w 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ę dzienników w pliku docker-compose.yml, możesz ręcznie usunąć pliki dziennika Docker JSON z /var/lib/docker/containers/<container_id>/. Zanim to zrobisz, powinieneś zidentyfikować identyfikator kontenera Docker za pomocą docker ps -a.
Czy możesz śledzić dzienniki Dockera?
Tak, możesz. W tym celu należy użyć polecenia docker logs wraz z opcją -f lub –follow. Spowoduje to śledzenie dzienników Dockera.