A Docker konténerekben futó alkalmazások naplóbejegyzéseit általában a "docker logs" paranccsal kérdezhetjük le.
Hogyha ezt lefutattom a parancssorban, akkor minden naplóbejegyzés ki fog kerülni a képernyőre. A kérdés az, hogy hogy kerül ide. Honnan tudja a "docker logs", hogy honnan kell a naplóbejegyzéseket lekérdezni? A mellékelt videóban bemutatom a Docker konténereknél a naplóbejegyzések kezelésének alapjait, majd benézünk a motorháztető alá, miért is működik a logok lekérdezése és hogyan érhetjük el az aktuális logokat akkor is, ha a korábbi logok mentése le van tiltva.
A használt parancsok:
Konténer indítása
Weblap elérése curl-lel
Naplóbejegyzések lekérdezése
Standard output és standard error stream-ekhez tartozó azonosító lekérdezése
ls -l /dev/stderr
Stream-ek teszteléséhez használható shell streams.sh
szkript
echo "output" > /dev/stdout
echo "error" > /dev/stderr
Futtatási jogosultság adás a szkriptre
Csak az error stream megjelenítése az output stream elrejtésével
Csak az output stream megjelenítése az error stream elrejtésével
Mindkét stream fájlba irányítása
Az előző 3 parancsot a docker logs httpd
paranccsal is le lehet futtatni a streams.sh
helyett.
A JSON naplófájl útvonalának lekérdezése
A JSON naplófájlt megnyitása
Konténer törlése
Konténer indítása a logok mentésének letiltásával
Konténerben futó process ID-jának lekérdezése
A /proc
mappában levő, a konténerben futó processhez tartozó standard error és standard output stream-ek mappájába belépés
cd $(docker container inspect httpd --format '{{ .Sate.Pid }}')/fd
Az aktuális standard output elkérése a processztől
Új terminálban az előző parancs ablakába a naplóbejegyzések küldéséhez a weboldal ismételt elérése
Végszó
Ha tetszett a videó, kérlek, küldj egy like-ot a youtube-on, vagy akár itt is. Ha szeretnél legközelebb is hasonló tartalmakról videókat, iratkozz fel a Youtube csatornára, ami mindig egy indirekt jelzés számomra, hogy ideje nekiállni a következő videónak :) Követheted a Facebook oldalt is és szokás szerint bármelyik csatornán szeretettel várom az észrevételeket, kéréseket.