Chcete vědět, co aplikace Docker dělá v zákulisí? Pojďme se dozvědět více o tajném okně, známém jako protokoly, do vašich kontejnerů, které ukazují každý jejich pohyb. Protokoly jsou velmi užitečné při řešení problémů. Ale než začneme, pojďme se rychle podívat na to, co jsou Docker a Docker Compose.
Docker vám umožňuje zabalit vaše aplikace do malých kontejnerů a spustit je na většině operačních systémů bez jakýchkoli závislostí. Je to jako vkládat své aplikace do malých krabic zvaných kontejnery, které mohou fungovat všude stejným způsobem. Znalost kontejnerů je důležitým předpokladem pro učení se o Docker compose. Takže vám doporučuji, abyste si nejprve přečetli náš blog výhody kontejnerizace.
Docker Compose přichází s Dockerem a zjednodušuje vývoj více kontejnerových aplikací řetězením jejich služeb, sítí a úložiště. Protokoly kontejnerů Docker a protokolování Docker Compose pomáhají vývojářům zjistit, co každý kontejner dělá.
Tak co, jste zvědaví na Docker Compose Logs? Jste na správném místě. Tento blog vysvětlí základy protokolů Docker Compose a pokryje pokročilejší podrobnosti. Naučte se, jak co nejlépe využít Docker Compose pro své projekty.
Význam protokolů Docker Compose
Představte si, že vývojář spustí aplikaci s Dockerem, ale přeskočí nastavení protokolů Docker. Zpočátku se zdá vše v pořádku. Uživatelé však brzy najdou chyby a aplikace se zpomalí. Bez protokolů Dockeru vývojář nevidí, co se uvnitř kontejnerů Docker pokazilo. Protokoly Docker Compose jsou jako podrobný záznam těchto kontejnerů. Zaznamenávají každý detail toho, co se děje, což je důležité pro pozdější nalezení a řešení problémů.
Jako vývojář nebo správce systému musíte rozumět tomu, co se děje uvnitř víceřetězcových aplikací a mezi nimi. Zde fungují protokoly Docker Compose jako praktický nástroj. Proč jsou tedy tyto protokoly nutné?
-
Odstraňování problémů a ladění
Zkontrolujte protokoly dockeru, když aplikace neběží správně nebo narazí na chyby. Protokoly Dockeru jsou prvními zdroji, na které se můžete podívat, abyste mohli problém vysledovat. Prozkoumáním protokolů dockeru mohou vývojáři určit hlavní příčinu a zdroj problémů, ať už jde o chybu v kódu, nesprávnou konfiguraci nebo problémy se zdroji.
-
Monitorování stavu aplikace
Pravidelné sledování aplikačních protokolů pomáhá pochopit celkový stav služeb. Protokoly mohou odhalit včasné varovné signály, jako jsou opakované chyby a pomalé reakce. Včasné pozorování těchto vzorců může zabránit potenciálním problémům v budoucnu.
-
Audit a dodržování předpisů
U aplikací, které musí dodržovat specifické standardy, jsou protokoly dockeru prvním důkazem, který ukazuje, zda aplikace dodržuje pokyny. Tyto protokoly také hrají zásadní roli při sledování autorizovaných nebo neoprávněných činností.
-
Optimalizace
Protokoly jsou cennými zdroji pro optimalizaci softwaru tím, že poskytují data o výkonu. Vývojáři mohou například identifikovat pomalu běžící dotazy, neefektivní cesty kódu nebo nevyužité zdroje.
Vytvoření receptury Docker: Nasazení webového serveru
V této části si společně projdeme vytvořením receptu Docker. Nejprve musíme něco postavit, abychom mohli začít svou cestu s protokoly Docker Compose. Za tímto účelem nasadíme webový server. Chcete-li vytvořit Dockerfile, jednoduše spusťte nano Dockerfile do požadované složky na vašem VPS s následujícím obsahem a poté jej uložte:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Co tedy dělá každý řádek tohoto kódu?
- Začínáme s lehkou základnou, nginx: alpský.
- Dále vymažeme výchozí uvítací stránku Nginx.
- Poté se ujistíme, že webový server naslouchá na portu 80.
- Nakonec spustíme server Nginx s CMD.
Nyní je náš Dockerfile připraven, přejdeme k dalšímu kroku, kterým je vytvoření souboru Docker Compose. Zde je struktura docker-compose.yml soubor:
version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./index.html:/usr/share/nginx/html/index.html
Pojďme si to rozebrat, abychom úplně porozuměli každé části:
- Používáme verzi 3.8.
- Na dalším řádku pojmenujeme naši službu „web“.
- Poté dáme Dockerovi pokyn, aby vytvořil náš webový server z aktuální složky.
- Propojujeme port 8080 na našem hostiteli s portem 80 v našem kontejneru, abychom našemu webovému serveru umožnili navázat spojení.
- Nakonec mapy konfigurace svazků index.html z hostitelského disku do kontejneru. Později můžete vytvořit index.html soubor s libovolným obsahem a umístěte jej na místo Dockerfile a docker-compose.yml soubory existují.
Nyní je čas spustit náš kontejner Docker pomocí Docker Compose. Jednoduše, běžíme docker-compose up.

Jakmile spustíte docker-compose up Docker stáhne požadované obrázky z internetu a nakonfiguruje je podle pokynů v našich konfiguračních souborech.
Chcete-li zkontrolovat, zda je náš webový server v provozu, otevřete webový prohlížeč, zadejte svou IP adresu VPS a požádejte o přístup k portu 8080.

Jako vedlejší poznámku můžete použít docker-compose up -d ke spuštění kontejneru na pozadí.
Přístup k protokolům pomocí Docker Compose
Nyní je náš webový server připraven, spuštěn a spuštěn. Již generuje protokoly a ukládá tyto informace pro pozdější použití. Přístup k protokolům sestavování dockeru je nezbytný pro odstraňování problémů a monitorování. Ale jak můžeme číst tyto protokoly? Toto je místo protokoly docker-compose přijde vhod. Ujistěte se, že jste ve složce, kde konfigurace existuje, a spusťte tento příkaz.

Někdy možná budete chtít vidět živou verzi protokolů při jejich generování. Jednoduše přidejte -f na konec předchozího příkazu a spusťte docker-compose logs -f.

Některé aplikace založené na Dockeru vám nemusí ve svých protokolech poskytovat časová razítka. Proto můžete použít docker-compose logs -t pro přidání zaznamenaného času pro každý řádek protokolu.

Protokoly Docker mohou také zobrazit nejnovější záznamy. Chcete-li toho dosáhnout, použijte docker-compose logs – tail 10 pro zobrazení posledních 10 záznamů protokolu. Docker sestavuje konec protokolů a podobně je konec protokolů docker zvláště užitečný, když chcete rychle zkontrolovat nedávnou aktivitu, aniž byste museli procházet celou historii protokolů.

Primárním účelem použití Docker Compose je vytvářet vícekontejnerové aplikace. Proto možná budete muset číst konkrétní protokoly pro požadovanou službu. Chcete-li tak učinit, použijte docker-compose logs -f SERVICE, nezapomeňte vyměnit SERVIS s vaším skutečným názvem služby.

Docker protokolování
Ekosystém Docker se může stát složitějším pro konvergované aplikace, zejména ve velkých prostředích. Jak již víme, každý kontejner generuje protokoly. Proto je za přijímání, doručování a ukládání protokolů zodpovědný mechanismus známý jako ovladač protokolování. Ve výchozím nastavení používá Docker soubory JSON pro ovladač protokolování, ale podporuje také různé další ovladače, každý se svými klady a zápory.
Všichni souhlasí s tím, že protokoly jsou zásadní v různých oblastech, včetně odstraňování problémů a zvyšování výkonu systému. Níže se budeme zabývat dvěma hlavními aspekty používání protokolů kontejnerů:
- Sledování: Primárním účelem protokolů je sledování. Obecně odhalují celkový stav našich kontejnerových aplikací.
- Odstraňování problémů: V případě problémů nám protokoly pomáhají odhalit závady aplikace.
Protože protokoly dockeru a protokoly sestavování dockeru jsou průběžně generovány, mohou zaplnit celé úložiště VPS. Proto potřebujeme strategii pro správu místa na disku, která se nazývá Politika rotace protokolů. Chcete-li vytvořit a používat tuto zásadu, vraťte se na stránku docker-compose.yml soubor a otevřete jej. Poté přidejte oddíl protokolování s konfigurací níže:
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"
Můžete se neustále přizpůsobovat max-velikost a max-soubor podle vašich potřeb.
Docker Logs Delivery Models
Inženýři se mohou rozhodnout pro jiný model protokolování v pokročilejších prostředích, než jsou výchozí ovladače JSON, jako je Syslog, fluentd a další. Je však důležité mít na paměti, že ovladač souboru JSON je vhodný pro většinu scénářů protokolování a nemusí být nutné se odchýlit od výchozího režimu.
V závislosti na architektuře vaší aplikace nebo organizačních požadavcích můžete být nuceni používat řešení centrálního protokolování známá jako Agregátory protokolů. Tyto služby, včetně Elasticsearch, Logstash, Kibana atd. jsou navrženy tak, aby přijímaly protokoly z různých zdrojů a konsolidovaly, ukládaly a analyzovaly je na jednom centrálním místě.
Naopak byste měli své protokoly ukládat pomocí cenově výhodnějších řešení úložiště. Zvažte scénář, kdy vaše VPS využívá vysokorychlostní a drahé úložiště; nemusí být ekonomické využívat takové prémiové zdroje pro ukládání protokolů, které byste mohli potřebovat pouze pro budoucí použití.
K dispozici jsou četné modely protokolování, z nichž každý má své výhody a nevýhody. Je nezbytné pečlivě zhodnotit každý model a vybrat jeden na základě vašich konkrétních potřeb.
Získejte ekonomický nebo prémiový Linux VPS pro hostování vašeho webu nebo vzdálené plochy za nejnižší cenu. VPS běžící na Linux KVM pro vyšší efektivitu a práci na výkonném hardwaru s úložištěm NVMe SSD pro vyšší rychlost.
Přečtěte si víceZávěr
Porozumění protokolům Docker Compose je klíčové. Pomáhají dobře spravovat a ladit vaše aplikace Docker. Naučit se přistupovat k těmto protokolům a sledovat je, zlepšuje řešení problémů a zvyšuje výkon a zabezpečení vaší aplikace. Ať už vyvíjíte nebo spravujete systémy, používání protokolů Docker Compose je zásadní. Zajišťují efektivní správu kontejnerů.
FAQ
Jak mohu filtrovat protokoly Docker Compose podle času?
Docker Compose nenabízí přímou metodu filtrování protokolů podle času. Protokoly však můžete filtrovat tak, že je propojíte přes grep pro porovnávání vzorů. Můžete například použít: docker-compose logs | grep „2023-04-06“, místo „2023-04-06“ konkrétní datum nebo časový vzor, který hledáte.
Jak zastavit kontejnery spuštěné pomocí Docker Compose?
Přejděte do adresáře, který obsahuje soubor docker-compose.yml a spusťte příkaz docker-compose down.
Jak ručně odstranit soubory protokolu?
Namísto konfigurace rotace protokolů v souboru docker-compose.yml můžete soubory protokolu Docker JSON ručně odebrat z /var/lib/docker/containers/<id_kontejneru>/. Než tak učiníte, měli byste identifikovat ID kontejneru Docker pomocí docker ps -a.
Dokážete sledovat protokoly Docker?
Ano, můžete. K tomu byste měli použít příkaz docker logs spolu s volbou -f nebo –follow. To vám umožní sledovat protokoly Docker.