Wil je weten wat Docker-apps achter de schermen doen? Laten we meer te weten komen over het geheime venster, ook wel logbestanden genoemd, in uw containers waarin elke beweging die ze maken wordt weergegeven. De logboeken zijn super handig bij het oplossen van problemen. Maar laten we, voordat we beginnen, even kijken naar wat Docker en Docker Compose zijn.
Met Docker kunt u uw applicaties in kleine containers verpakken en deze zonder enige afhankelijkheden op de meeste besturingssystemen uitvoeren. Het is alsof je je apps in kleine vakjes plaatst, genaamd Containers, die overal op dezelfde manier kunnen werken. Kennis over containers is een belangrijke voorwaarde bij het leren kennen van Docker Compose. Daarom raad ik je aan eerst onze blog op te lezen de voordelen van containerisatie.
Docker Compose wordt geleverd met Docker en vereenvoudigt het ontwikkelen van meerdere containerapplicaties door hun services, netwerken en opslag aan elkaar te koppelen. Docker-containerlogboeken en Docker Compose-logboekregistratie helpen ontwikkelaars te zien wat elke container doet.
Dus, ben je nieuwsgierig naar Docker Compose Logs? U bent op de juiste plaats. In deze blog worden de basisprincipes van Docker Compose-logboeken uitgelegd en worden meer geavanceerde details besproken. Leer hoe u Docker Compose optimaal kunt benutten voor uw projecten.
Het belang van Docker Compose-logboeken
Stel je voor dat een ontwikkelaar een app met Docker start, maar het instellen van Docker-logboeken overslaat. In eerste instantie lijkt alles in orde. Maar al snel ontdekken gebruikers fouten en wordt de app langzamer. Zonder Docker-logboeken kan de ontwikkelaar niet zien wat er mis is gegaan in de Docker-containers. Docker Compose-logboeken zijn als een gedetailleerd overzicht van deze containers. Ze registreren elk detail van wat er gebeurt, wat belangrijk is voor het later vinden en oplossen van problemen.
Als ontwikkelaar of systeembeheerder moet u begrijpen wat er binnen en tussen applicaties met meerdere ketens gebeurt. Dit is waar Docker Compose-logboeken als een handig hulpmiddel fungeren. Waarom zijn deze logboeken nodig?
-
Probleemoplossing en foutopsporing
Controleer docker-logboeken wanneer een applicatie niet correct werkt of fouten tegenkomt. Docker-logboeken zijn de eerste bronnen die u kunt bekijken om het probleem op te sporen. Door de docker-logboeken te onderzoeken, kunnen ontwikkelaars de hoofdoorzaak en bron van problemen vaststellen, of het nu gaat om een fout in de code, een verkeerde configuratie of problemen met de bronnen.
-
Toezicht op de status van applicaties
Het regelmatig monitoren van applicatielogboeken helpt om de algehele gezondheid van services te begrijpen. Logboeken kunnen vroege waarschuwingssignalen aan het licht brengen, zoals herhaalde fouten en trage reacties. Door deze patronen vroegtijdig te observeren, kunnen potentiële problemen in de toekomst worden voorkomen.
-
Audit en naleving
Voor applicaties die aan specifieke standaarden moeten voldoen, zijn docker-logs het eerste bewijsstuk dat laat zien of de applicatie zich aan de richtlijnen houdt. Deze logboeken spelen ook een essentiële rol bij het monitoren van geautoriseerde of niet-geautoriseerde activiteiten.
-
Optimalisatie
Logboeken zijn waardevolle bronnen voor software-optimalisatie door prestatiegegevens te verstrekken. Ontwikkelaars kunnen bijvoorbeeld langzaam lopende query's, inefficiënte codepaden of onderbenutte bronnen identificeren.
Een Docker-recept maken: een webserver implementeren
In dit gedeelte bespreken we samen hoe u een Docker-recept maakt. We moeten eerst iets bouwen om onze reis te beginnen met Docker Compose-logboeken. Laten we hiervoor een webserver inzetten. Om een Dockerfile te maken, voert u eenvoudigweg uit nano Dockerbestand in de gewenste map op je VPS met de volgende inhoud en sla deze vervolgens op:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Wat doet elke regel van deze code?
- We beginnen met een lichtgewicht basis, nginx:alpine.
- Vervolgens ruimen we de standaard welkomstpagina van Nginx op.
- Vervolgens zorgen we ervoor dat de webserver op poort luistert 80.
- Ten slotte draaien we de Nginx-server met CMD.
Nu ons Dockerfile klaar is, gaan we verder met de volgende stap, namelijk het maken van het Docker Compose-bestand. Hier is de structuur van de docker-compose.yml bestand:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Laten we het opsplitsen om elk onderdeel volledig te begrijpen:
- We gebruiken versie 3.8.
- Op de volgende regel noemen we onze service “web“.
- Vervolgens instrueren we Docker om onze webserver vanuit de huidige map te bouwen.
- Wij koppelen poort 8080 op onze host aan poort 80 in onze container, zodat onze webserver verbinding kan maken.
- Ten slotte worden de volumesconfiguratiekaarten weergegeven index.html van de hostschijf naar de container. Later kunt u een index.html bestand met elke gewenste inhoud en plaats het waar de Dockerbestand En docker-compose.yml bestanden bestaan.
Nu is het tijd om onze Docker-container uit te voeren met Docker Compose. Simpel: we rennen docker-componeren.

Zodra u de docker-componeren opdracht downloadt Docker de vereiste afbeeldingen van internet en configureert deze zoals aangegeven in onze configuratiebestanden.
Om te controleren of onze webserver actief is, opent u uw webbrowser, typt u uw VPS IP-adres in en vraagt u toegang tot poort 8080 aan.

Als kanttekening kun je gebruiken docker-opstellen -d om de container op de achtergrond uit te voeren.
Toegang tot logboeken met Docker Compose
Nu is onze webserver klaar en actief. Het genereert al logboeken en slaat deze informatie op voor later gebruik. Toegang tot uw Docker Compose-logboeken is essentieel voor het oplossen van problemen en monitoring. Maar hoe kunnen we deze logs lezen? Dit is waar docker-compose-logboeken komt goed van pas. Zorg ervoor dat u zich in de map bevindt waarin de configuratie bestaat en voer die opdracht uit.

Soms wilt u misschien de liveversie van de logboeken zien terwijl ze worden gegenereerd. Voeg eenvoudigweg -f toe aan het einde van het vorige commando en voer het uit docker-compose logs -f.

Sommige Docker-gebaseerde applicaties voorzien u mogelijk niet van tijdstempels in hun logbestanden. Daarom kunt u gebruiken docker-compose logs -t om een geregistreerde tijd toe te voegen voor elke regel van het logboek.

Docker Logs kunnen ook de meest recente vermeldingen weergeven. Gebruik om dit te bereiken docker-compose logs –tail 10 om de laatste 10 logboekvermeldingen te bekijken. Docker stelt de staart van logboeken samen, en op dezelfde manier is docker de staart van logboeken vooral handig als u snel recente activiteiten wilt controleren zonder door de hele logboekgeschiedenis te bladeren.

Het primaire doel van het gebruik van Docker Compose is het maken van applicaties met meerdere containers. Daarom moet u mogelijk specifieke logboeken voor een gewenste service lezen. Gebruik hiervoor docker-compose logs -f SERVICE, vergeet niet te vervangen DIENST met uw werkelijke servicenaam.

Docker-logboekregistratie
Het Docker-ecosysteem kan complexer worden voor geconvergeerde applicaties, vooral in grote omgevingen. Zoals we al weten, genereert elke container logbestanden. Daarom is een mechanisme dat bekend staat als de Logging Driver verantwoordelijk voor het ontvangen, leveren en opslaan van logboeken. Standaard gebruikt Docker JSON-bestanden voor het Logging-stuurprogramma, maar het ondersteunt ook verschillende andere stuurprogramma's, elk met hun voor- en nadelen.
Iedereen is het erover eens dat logboeken op verschillende gebieden van cruciaal belang zijn, waaronder het oplossen van problemen en het verbeteren van de systeemprestaties. Hieronder bespreken we twee van de belangrijkste aspecten van het gebruik van containerlogboeken:
- Toezicht: Het primaire doel van Logs is monitoring. Ze onthullen over het algemeen de algehele gezondheid van onze gecontaineriseerde applicaties.
- Problemen oplossen: In geval van problemen helpen logboeken ons bij het opsporen van applicatieproblemen.
Omdat docker-logs en docker-compose-logs voortdurend worden gegenereerd, kunnen ze de hele VPS-opslag in beslag nemen. Daarom hebben we een strategie nodig om schijfruimte te beheren, een zogenaamde Log Rotation Policy. Als u dit beleid wilt maken en gebruiken, gaat u terug naar de docker-compose.yml bestand en open het. Voeg vervolgens een logboeksectie toe met de onderstaande configuratie:
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"
Je kunt je voortdurend aanpassen maximale grootte En max-bestand volgens uw behoeften.
Docker Logs-leveringsmodellen
Ingenieurs kunnen in geavanceerdere omgevingen kiezen voor een ander logmodel dan de standaard JSON-stuurprogramma's, zoals Syslog, vloeiend en andere. Het is echter belangrijk om te onthouden dat het JSON-bestandsstuurprogramma geschikt is voor de meeste logscenario's en dat het misschien niet nodig is om van de standaardmodus af te wijken.
Afhankelijk van de architectuur van uw applicatie of de organisatorische vereisten, bent u mogelijk genoodzaakt gebruik te maken van centrale logoplossingen, ook wel Log Aggregators genoemd. Deze diensten, inclusief Elastischzoeken, Logstash, Kibana, enz. zijn ontworpen om logbestanden uit verschillende bronnen te ontvangen en deze op één centrale locatie te consolideren, op te slaan en te analyseren.
Omgekeerd moet u uw logboeken opslaan met kosteneffectievere opslagoplossingen. Overweeg het scenario waarin uw VPS gebruikmaakt van snelle en dure opslag; het is misschien niet economisch om dergelijke premiumbronnen te gebruiken voor het opslaan van logboeken die u mogelijk alleen nodig heeft voor toekomstig gebruik.
Er zijn talloze logmodellen beschikbaar, elk met voor- en nadelen. Het is essentieel om elk model zorgvuldig te evalueren en er een te selecteren op basis van uw specifieke behoeften.
Koop een goedkope of premium Linux VPS voor het hosten van uw website of externe desktop, tegen de goedkoopste prijs die er is. VPS Draait op Linux KVM voor meer efficiëntie en werkt op krachtige hardware met NVMe SSD-opslag voor hogere snelheid.
Lees meerConclusie
Het begrijpen van Docker Compose-logboeken is essentieel. Ze helpen bij het goed beheren en debuggen van uw Docker-applicaties. Door deze logboeken te leren openen en monitoren, kunt u problemen beter oplossen en de prestaties en beveiliging van uw app verbeteren. Of u nu systemen ontwikkelt of beheert, het gebruik van Docker Compose-logboeken is essentieel. Zij zorgen ervoor dat uw containerbeheer effectief is.
Veelgestelde vragen
Hoe kan ik Docker Compose-logboeken op tijd filteren?
Docker Compose biedt geen directe methode om logs op tijd te filteren. U kunt logboeken echter filteren door ze door grep te leiden voor patroonmatching. U kunt bijvoorbeeld het volgende gebruiken: docker-compose logs | grep “2023-04-06”, waarbij “2023-04-06” wordt vervangen door het specifieke datum- of tijdpatroon waarnaar u zoekt.
Hoe kan ik voorkomen dat containers zijn gestart met Docker Compose?
Navigeer naar de map die het bestand docker-compose.yml bevat en voer de opdracht docker-compose down uit.
Hoe logbestanden handmatig verwijderen?
In plaats van de logboekrotatie in uw docker-compose.yml-bestand te configureren, kunt u Docker JSON-logboekbestanden handmatig verwijderen uit /var/lib/docker/containers/<container_id>/. Voordat u dit doet, moet u de Docker-container-ID identificeren met docker ps -a.
Kun je Docker-logboeken volgen?
Ja, dat kan. Hiervoor moet u de opdracht docker logs gebruiken samen met de optie -f of –follow. Hiermee worden Docker-logboeken voor u bijgehouden.