Docker2 min read
Porty, logy a základný troubleshooting kontajnera
Nastavenie portov a rýchla diagnostika problémov cez docker logs a docker inspect.
V praxi sa väčšina problémov objaví v prvých minútach po štarte kontajnera: appka neodpovedá, port nefunguje, alebo proces padá. Tento článok ti dá rýchly postup, ako problém lokalizovať bez hádania.
Ako fungujú porty v Dockeri
- Aplikácia v kontajneri počúva na internom porte (napr.
80). - Ty mapuješ port hosta na port kontajnera (
8080:80). - Formát:
-p HOST_PORT:CONTAINER_PORT.
docker run --name web-debug -d -p 8080:80 nginx:alpinedocker psAk je mapovanie správne, v stĺpci PORTS uvidíš 0.0.0.0:8080->80/tcp.
Rýchla diagnostika cez logy
docker logs web-debugdocker logs -f web-debuglogsvypíše existujúci výstup.logs -fstreamuje nové riadky v reálnom čase.
Používaj to ako prvý krok, ešte pred exec do kontajnera.
Inspect: pravda o konfigurácii
docker inspect web-debugSústrediť sa hlavne na:
NetworkSettings.PortsConfig.EnvMountsState.StatusaState.Health(ak je healthcheck)
Praktický troubleshooting scenár
Keď localhost:8080 neodpovedá:
docker ps– beží kontajner?docker logs web-debug– nepada aplikácia?docker port web-debug– mapovanie portu je správne?lsof -i :8080– nie je port obsadený iným procesom?
Najčastejšie chyby
- Prehodené porty (
80:8080namiesto8080:80). - Appka vo vnútri kontajnera počúva iba na
127.0.0.1, nie na0.0.0.0. - Kontajner sa reštartuje v slučke a logy nikto nesleduje.
Mini úloha
- Spusť kontajner na porte
8090. - Sleduj logy cez
docker logs -f. - Úmyselne zabi proces (
docker kill) a over správanie.
Overenie v praxi
- Spusť
docker compose psa over, že všetky potrebné služby súUp. - Skontroluj logy cez
docker compose logs --tail=100a hľadaj chyby pri štarte. - Over prístupnosť služby cez jej reálny endpoint (HTTP, DB port, healthcheck).
Čo bude ďalej
Ďalší krok je persistencia dát: volumes a bind mounts, aby si nestrácal dáta pri každom reštarte kontajnera.