2 min čtení

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.
BASH
docker run --name web-debug -d -p 8080:80 nginx:alpine
docker ps

Ak je mapovanie správne, v stĺpci PORTS uvidíš 0.0.0.0:8080->80/tcp.

Rýchla diagnostika cez logy

BASH
docker logs web-debug
docker logs -f web-debug
  • logs vypíše existujúci výstup.
  • logs -f streamuje nové riadky v reálnom čase.

Používaj to ako prvý krok, ešte pred exec do kontajnera.

Inspect: pravda o konfigurácii

BASH
docker inspect web-debug

Sústrediť sa hlavne na:

  • NetworkSettings.Ports
  • Config.Env
  • Mounts
  • State.Status a State.Health (ak je healthcheck)

Praktický troubleshooting scenár

Keď localhost:8080 neodpovedá:

  1. docker ps – beží kontajner?
  2. docker logs web-debug – nepada aplikácia?
  3. docker port web-debug – mapovanie portu je správne?
  4. lsof -i :8080 – nie je port obsadený iným procesom?

Najčastejšie chyby

  • Prehodené porty (80:8080 namiesto 8080:80).
  • Appka vo vnútri kontajnera počúva iba na 127.0.0.1, nie na 0.0.0.0.
  • Kontajner sa reštartuje v slučke a logy nikto nesleduje.

Mini úloha

  1. Spusť kontajner na porte 8090.
  2. Sleduj logy cez docker logs -f.
  3. Úmyselne zabi proces (docker kill) a over správanie.

Overenie v praxi

  • Spusť docker compose ps a over, že všetky potrebné služby sú Up.
  • Skontroluj logy cez docker compose logs --tail=100 a 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.

Předchozí článekŠtruktúra Nuxt/Vue projektu bez chaosuNásledující článekRouting a Route Model Binding: čisté URL bez duplicitného kódu
Zpět na seznam článků