Klasická instalace aplikací na systém přináší závislosti, které se sčítají a stárnou. Docker izoluje aplikaci do kontejneru se vším, co potřebuje ke spuštění, a hostiteli předá jen to nejnutnější: CPU, paměť, síť a disky. Získáš reprodukovatelnost, snadnou aktualizaci i návrat zpět. Pokud provozuješ domácí NAS, malý web, wiki, správu hesel nebo fotogalerii, kontejnery dovolí rychle zkoušet a bezbolestně uklízet. Pro malé týmy jsou výhodou identické dev a prod prostředí: co běží na notebooku, poběží i na serveru.
Základní stavebnice: image, kontejner, svazek a síť
Image je šablona s aplikací a závislostmi. Kontejner je běžící instance image. Svazek (volume) mapuje trvalá data mimo životní cyklus kontejneru, aby aktualizace nevymazala konfigurace a databázi. Síť propojuje kontejnery mezi sebou a se světem. Praktický zvyk je držet konfigurace a data v jasné struktuře adresářů, například „/srv“ nebo „~/containers“, aby bylo okamžitě vidět, co k čemu patří. Při startu kontejneru mapuješ porty ven, připojíš datové svazky a předáš proměnné prostředí s hesly a klíči.
Docker Compose jako denní nástroj
Compose popisuje službu v YAML souboru. Místo dlouhých příkazů máš čitelný manifest: jaký image použít, jaké porty publikovat, jaké svazky připojit a na jaké síti běžet. Přidáš proměnné pro konfiguraci a restart politiku. Jediným „compose up -d“ nastartuješ celý stack, „compose pull“ aktualizuje image a „compose down“ bezpečně zastaví. Pro domácí server nebo malý VPS si udělej repo s jedním „compose.yaml“ na každou aplikaci a centrální „infra“ složku pro reverzní proxy, certifikáty a monitoring. Versioning přes git ti dá historii změn a rychlý návrat.
Reverzní proxy, HTTPS a jednotný vstup
Jakmile máš víc služeb, potřebuješ je schovat za reverzní proxy, která podle domén přeposílá požadavky na správný kontejner. Oblíbené jsou Traefik a Nginx Proxy Manager. Traefik rozumí Compose labelům a umí sám žádat Let’s Encrypt o certifikáty a obnovovat je. Každé službě dáš subdoménu, třeba „wiki.domena.cz“ a „photos.domena.cz“, a proxy zajistí TLS i směrování. Zvenčí pak otevíráš jen HTTP(S) a případně SSH pro správu, vše ostatní zůstává skryté v interní síti kontejnerů. Bezpečnější a přehlednější než lov portů 8080, 9090 a 3000 na veřejné IP.
Data, zálohy a aktualizace beze strachu
Trvalá data patří do svazků nebo bind mountů na hostiteli. Každou službu měj rozdělenou na „config“ a „data“. Zálohuj je mimo server pomocí nástroje jako restic, borg nebo rclone do šifrovaného úložiště. Aktualizace je jednoduchá: „compose pull“, „compose up -d“ a sleduj logy. Pokud se něco pokazí, vrátíš image zpět na předchozí tag. U databází je dobré mít pravidelný dump a krátký maintenance window. Automatizace přes cron či systemd timer udělá z údržby rutinu a zkrátí výpadky na minuty.
Síť a bezpečnost: méně je více
Vytvářej oddělené docker sítě pro veřejnou vrstvu a interní backend. Venkovní svět vidí jen reverzní proxy, interní služby komunikují po neveřejné síti. Hesla a tokeny nepatří do „compose.yaml“ natvrdo, ale do „.env“ souboru s přístupy a do Docker secrets, pokud je používáš. Pravidelně aktualizuj image, sleduj CVE feedy u klíčových komponent a logy přes jednoduchý stack jako Promtail + Loki + Grafana, případně Portainer pro klikací správu. Pokud otevíráš SSH, povol klíčové přihlášení, zakaž hesla a omez adresy přes firewall. Dvoufaktor pro administraci webových rozhraní je dnes standard, ne nice-to-have.
Typické scénáře: od media serveru po Git
Media server typu Jellyfin nebo Plex běží v kontejneru, datový svazek mapuje knihovny z NASu, hardware transcoding vyžaduje předání GPU zařízení do kontejneru. Fotogalerie jako Immich či Photoprism potřebují databázi a úložiště; Compose stack zahrne i Postgres a zálohy. Wiki přes HedgeDoc či Wiki.js se dá rozběhnout během minut a přes proxy ji zpřístupníš týmu. Pro malé projekty lze provozovat Gitea nebo Forgejo s CI runnerem v dalším kontejneru. Sdílené tajemství je vždy stejné: jasná struktura, konzistentní Compose a pečlivé svazky pro data.
Kdy zvážit Kubernetes a kdy raději zůstat u Dockeru
Kubernetes je skvělý pro škálování a vysokou dostupnost, ale pro jeden VPS či domácí server je to často zbytečně složité. Docker Compose je méně okázalý, ale přehledný a snadno spravovatelný v malém. Pokud ti začne chybět orchestrátor, můžeš sáhnout po Portainer Stacks nebo Nomad. Prvním signálem ke změně je potřeba škálovat repliky napříč servery a řešit rolling updates bez výpadku. Do té doby ti Compose udělá službu, kterou oceníš jednoduchostí.
Malý provozní manuál pro klid hlavy
Měj repo s infrastrukturou, „README“ s postupy, jak co obnovit, a skript „make update“ pro jednotný update. Jednou měsíčně udělej test obnovy služby na testovací doméně. Logy udržuj čisté a rotované, upozornění posílej do chatu. Když přidáváš novou službu, napiš si, kde jsou data, jak ji zastavíš, zálohuješ a znovu spustíš. Kontejnery dávají svobodu experimentovat, ale pořádek dává svobodu udržet. S tímto rámcem se i malý server promění v spolehlivou platformu a ty místo hasiče budeš správcem, který ví, co a proč běží.




