Kompletní architektonická analýza, zkušenosti z praxe a závěrečné srovnání
Kontejnery nevznikly jako řešení pro vývojáře spravujícího jeden vlastní VPS. Vznikly jako odpověď na potřeby velkých firemních prostředí (Enterprise), CI/CD automatizace a cloudového škálování.
Nativní: Rozdíly mezi vývojovým (macOS/Win) a produkčním (Debian) prostředím mohou vedou k chybějícím knihovnám či modulům.
Kontejnery: Přesně stejný kontejnerový image běží na vývoji i produkci.
Nativní: Po smazání starých verzí PHP/Postgres zůstávají v systému zbytky balíčků a konfigurací.
Kontejnery: Příkaz docker rm nebo lxc-destroy smaže aplikaci se všemi závislostmi bez zanechání smetí.
Nativní: Průnik přes PHP může hypoteticky ohrozit celý souborový systém hostitele.
Kontejnery: Útočník zůstane izolován v prostředí kontejneru bez přístupu k hostitelskému OS.
Při potřebě automaticky navyšovat kapacitu na desítky instancí napříč clustery (Kubernetes) jsou kontejnery standardem.
| Vlastnost | Nativní Vanilla (KISS) Doporučeno | Kontejnery (Docker / LXC) Complex |
|---|---|---|
| Prvotní nastavení | Extrémně rychlé a přímočaré | Složitější (řešení sítí, mountů, práv) |
| Režie systému | Nulová režie (přímý výkon) | Malá (LXC) až střední (Docker/VM) |
| Přenositelnost | Pracnější opotřebování konfigurace | Blesková (přenese se hotový image) |
| Úklid po zrušení | Může vyžadovat manuální dočištění | 100% čisté smazání jedním příkazem |
| Správa verzí | Přes unix sockety a různé porty | Pro každý projekt izolovaný kontejner |
Máte absolutní pravdu. Slib „Docker vyřeší kompatibilitu mezi OS“ selhává hned v prvním momentě na Windows:
\r).storage/ nebo cache.Přesně tak. Správně napsaný odinstalátor uklidí systém do posledního bajtu. Příkaz typu:
apt purge php8.5* postgresql-18* && rm -rf /etc/php/8.5 /var/lib/postgresql/18
Smaže přesně to, co má. Argument o „neumytelném smetí“ platí spíše pro nezkušené správce bez automatizačních skriptů.
Přesně tak, kontejner **není virtuální stroj (VM)**:
Linux umí omezovat zdroje na úrovni OS odpradávna:
memory_limit v PHP, shared_buffers v PostgreSQL.[Service]
MemoryMax=2G
CPUQuota=200%
LXC i Docker nepoužívají nic jiného než právě tyto cgroups z Linuxového jádra.
To, co jste popsal, je důvod, proč se řada zkušených Senior Sysadminů raději drží čistého Linuxu (Vanilla / KISS).
Kontejnery přinášejí ohromnou vrstvu abstrakce a nových bodů selhání (sítě, DNS, sockety), přičemž jejich přínos pro samostatný server s několika projekty je minimální.
Nativní nastavení (PHP přes různé unix sockety + PostgreSQL na různých portech) je stále nejstabilnější, nejrychlejší a nejsnadněji laditelnou cestou.