Vil du vide, hvad Docker-apps laver bag kulisserne? Lad os lære mere om det hemmelige vindue, kendt som logs, i dine containere, der viser hver bevægelse, de foretager. Logfilerne er super nyttige til at løse problemer. Men før vi starter, lad os tage et hurtigt kig på, hvad Docker og Docker Compose er.
Docker giver dig mulighed for at pakke dine applikationer i små containere og køre dem på de fleste operativsystemer uden nogen afhængigheder. Det er som at lægge dine apps i små kasser kaldet Containere, som kan køre på samme måde overalt. At kende til containere er en vigtig forudsætning for at lære om Docker compose. Så jeg opfordrer dig til først at læse vores blog på fordelene ved containerisering.
Docker Compose kommer med Docker og forenkler udviklingen af flere containeriserede applikationer ved at sammenkæde deres tjenester, netværk og opbevaring. Docker-containerlogfiler og Docker Compose-logning hjælper udviklere med at se, hvad hver container gør.
Så er du nysgerrig efter Docker Compose Logs? Du er på det rigtige sted. Denne blog vil forklare det grundlæggende i Docker Compose-logfiler og dække mere avancerede detaljer. Lær, hvordan du får mest muligt ud af Docker Compose til dine projekter.
Vigtigheden af Docker Compose Logs
Forestil dig, at en udvikler starter en app med Docker, men springer opsætning af Docker-logs over. Umiddelbart virker alt fint. Men snart finder brugerne fejl, og appen bliver langsommere. Uden Docker-logfiler kan udvikleren ikke se, hvad der gik galt inde i Docker-beholderne. Docker Compose-logfiler er som en detaljeret registrering af disse containere. De registrerer hver eneste detalje af, hvad der sker, hvilket er vigtigt for at finde og løse problemer senere.
Som udvikler eller systemadministrator skal du forstå, hvad der sker i og mellem multi-chain-applikationer. Det er her, Docker Compose-logfiler fungerer som et praktisk værktøj. Så hvorfor er disse logfiler nødvendige?
-
Fejlfinding og fejlfinding
Tjek docker-logfiler, når en applikation ikke kører korrekt eller støder på fejl. Docker-logfiler er de første ressourcer, du kan se på for at spore problemet. Ved at undersøge docker-logfilerne kan udviklere lokalisere årsagen til og kilden til problemer, uanset om det er en fejl i koden, en fejlkonfiguration eller ressourceproblemer.
-
Overvågning af applikationssundhed
Regelmæssig overvågning af applikationslogfiler hjælper med at forstå tjenesternes generelle sundhed. Logfiler kan afsløre tidlige advarselstegn, såsom gentagne fejl og langsomme svar. At observere disse mønstre tidligt kan forhindre potentielle problemer i fremtiden.
-
Revision og Compliance
For applikationer, der skal følge specifikke standarder, er docker-logs det første bevis, der viser, om applikationen overholder retningslinjerne. Disse logs spiller også en væsentlig rolle i overvågningen af autoriserede eller uautoriserede aktiviteter.
-
Optimering
Logfiler er værdifulde ressourcer til softwareoptimering ved at levere ydeevnedata. For eksempel kan udviklere identificere langsomt kørende forespørgsler, ineffektive kodestier eller underudnyttede ressourcer.
Udarbejdelse af en Docker-opskrift: Implementering af en webserver
I dette afsnit vil vi gennemgå at skabe en Docker-opskrift sammen. Vi skal først bygge noget for at starte vores rejse med Docker Compose-logfiler. Lad os implementere en webserver til dette formål. For at oprette en Dockerfile skal du blot køre nano dockerfil i den ønskede mappe på din VPS med følgende indhold og gem det derefter:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Så hvad gør hver linje i denne kode?
- Vi starter med en letvægts base, nginx: alpine.
- Dernæst rydder vi standardvelkomstsiden af Nginx.
- Derefter sørger vi for, at webserveren lytter på port 80.
- Til sidst kører vi Nginx-serveren med CMD.
Nu er vores Dockerfile klar, vi går videre til næste trin, som er at oprette Docker Compose-filen. Her er strukturen af docker-compose.yml fil:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Lad os opdele det for at forstå hver del fuldstændigt:
- Vi bruger version 3.8.
- På næste linje navngiver vi vores service "web“.
- Derefter instruerer vi Docker om at bygge vores webserver fra den aktuelle mappe.
- Vi forbinder port 8080 på vores vært til port 80 i vores container for at gøre det muligt for vores webserver at etablere en forbindelse.
- Til sidst, bind konfigurationskort index.html fra værtsdisken til containeren. Senere kan du oprette en index.html fil med det indhold, du ønsker, og placer det, hvor Dockerfil og docker-compose.yml filer findes.
Nu er det tid til at køre vores Docker-container med Docker Compose. Vi løber simpelthen docker-compose up.

Når du har kørt docker-compose up kommando, vil Docker downloade de nødvendige billeder fra internettet og konfigurere dem som anvist i vores konfigurationsfiler.
For at kontrollere, om vores webserver er oppe og køre, skal du åbne din webbrowser, indtaste din VPS IP-adresse og anmode om adgang til port 8080.

Som en sidebemærkning kan du bruge docker-komponere op -d for at køre beholderen i baggrunden.
Adgang til logfiler med Docker Compose
Nu er vores webserver klar, oppe og kørende. Det genererer allerede logfiler og gemmer disse oplysninger til senere brug. Adgang til dine docker-komponeringslogfiler er afgørende for fejlfinding og overvågning. Men hvordan kan vi læse disse logs? Det er her docker-compose logs kommer godt med. Sørg for, at du er i den mappe, hvor konfigurationen findes, og kør den kommando.

Nogle gange vil du måske se liveversionen af logfilerne, mens de genererer. Du skal blot tilføje -f i slutningen af den forrige kommando og køre docker-compose logs -f.

Nogle Docker-baserede applikationer giver dig muligvis ikke tidsstempler i deres logfiler. Derfor kan du bruge docker-compose logs -t for at tilføje en registreret tid for hver linje i loggen.

Docker Logs kan også vise de seneste poster. For at opnå dette, brug docker-compose logs – hale 10 for at se de seneste 10 logposter. Docker sammensætter logs hale, og på samme måde er docker logs tail særlig nyttig, når du hurtigt vil tjekke seneste aktivitet uden at rulle gennem hele loghistorien.

Det primære formål med at bruge Docker Compose er at skabe multi-container-applikationer. Derfor skal du muligvis læse specifikke logfiler for en ønsket tjeneste. For at gøre det, brug docker-compose logs -f SERVICE, husk at udskifte SERVICE med dit faktiske servicenavn.

Docker-logning
Docker-økosystemet kan blive mere komplekst for konvergerede applikationer, især i store miljøer. Som vi allerede ved, genererer hver container logs. Derfor er en mekanisme kendt som logningsdriveren ansvarlig for modtagelse, levering og lagring af logfiler. Som standard bruger Docker JSON-filer til logningsdriveren, men den understøtter også forskellige andre drivere, hver med deres fordele og ulemper.
Alle er enige om, at logfiler er afgørende på forskellige områder, herunder fejlfinding og forbedring af systemets ydeevne. Nedenfor vil vi dække to af hovedaspekterne ved brug af containerlogfiler:
- Overvågning: Logs primære formål er overvågning. De afslører generelt den generelle sundhed af vores containeriserede applikationer.
- Fejlfinding: I tilfælde af problemer hjælper logfiler os med at opdage applikationsfejl.
Da docker logs og docker compose logs løbende genereres, kan de fylde hele VPS-lageret. Derfor har vi brug for en strategi til at administrere diskplads kaldet en Log Rotation Policy. For at oprette og bruge denne politik skal du vende tilbage til docker-compose.yml fil og åbn den. Tilføj derefter en logningssektion med nedenstående konfiguration:
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"
Du kan hele tiden justere max-størrelse og max-fil efter dine behov.
Docker Logs Leveringsmodeller
Ingeniører kan vælge en anden logningsmodel i mere avancerede miljøer end standard JSON-drivere, såsom Syslog, fluentd og andre. Det er dog vigtigt at huske, at JSON-fildriveren er velegnet til de fleste logningsscenarier, og der er muligvis ikke behov for at afvige fra standardtilstanden.
Afhængigt af din applikations arkitektur eller organisatoriske krav, kan du blive tvunget til at bruge centrale logningsløsninger kendt som Log Aggregators. Disse tjenester, herunder Elasticsearch, Logstash, Kibana osv., er designet til at modtage logfiler fra forskellige kilder og konsolidere, gemme og analysere dem på en enkelt central placering.
Omvendt bør du gemme dine logfiler ved hjælp af mere omkostningseffektive opbevaringsløsninger. Overvej scenariet, hvor din VPS bruger højhastigheds og dyrt lager; Det er muligvis ikke økonomisk at bruge sådanne premium-ressourcer til lagring af logfiler, som du måske kun har brug for til fremtidig reference.
Adskillige logningsmodeller er tilgængelige, hver med fordele og ulemper. Det er vigtigt at vurdere hver model omhyggeligt og vælge en baseret på dine specifikke behov.
Få dig selv en økonomi eller premium Linux VPS til hosting af dit websted eller fjernskrivebord til den billigste pris derude. VPS Kører på Linux KVM for øget effektivitet og arbejder på kraftfuld hardware med NVMe SSD-lagring for øget hastighed.
Læs mereKonklusion
At forstå Docker Compose-logfiler er nøglen. De hjælper med at administrere og fejlfinde dine Docker-applikationer godt. At lære at få adgang til og overvåge disse logfiler forbedrer problemløsningen og øger din apps ydeevne og sikkerhed. Uanset om du udvikler eller administrerer systemer, er det vigtigt at bruge Docker Compose-logfiler. De sørger for, at din containerstyring er effektiv.
FAQ
Hvordan kan jeg filtrere Docker Compose-logfiler efter tid?
Docker Compose tilbyder ikke en direkte metode til at filtrere logfiler efter tid. Du kan dog filtrere logfiler ved at sende dem gennem grep til mønstermatchning. For eksempel kan du bruge: docker-compose logs | grep "2023-04-06", og erstatter "2023-04-06" med det specifikke dato- eller tidsmønster, du søger efter.
Hvordan stopper man containere startet med Docker Compose?
Naviger til den mappe, der indeholder filen docker-compose.yml, og kør kommandoen docker-compose ned.
Hvordan fjerner man logfiler manuelt?
I stedet for at konfigurere logrotation i din docker-compose.yml-fil, kan du manuelt fjerne Docker JSON-logfiler fra /var/lib/docker/containers/<container_id>/. Før du gør det, bør du identificere Docker container-id'et med docker ps -a.
Kan du hale Docker logs?
Ja, det kan du. Til det bør du bruge kommandoen docker logs sammen med -f eller -follow-indstillingen. Dette vil hale Docker-logfiler til dig.