Co je Docker? Docker je nástroj, který aplikaci zabalí i s celým prostředím, jež potřebuje k běhu, do jednoho balíku. V tom balíku, kterému se říká kontejner, je program, jeho knihovny i nastavení. Takový balík pak běží stejně na notebooku vývojáře i na linuxovém serveru, aniž by se musela cokoli doinstalovávat.

Nejlepší přirovnání je lodní kontejner, ze kterého má Docker ostatně i logo. Dřív se každý náklad překládal zvlášť a všude potřeboval jiné zacházení. S kontejnerem je jedno, co je uvnitř – jeřáb, loď i kamion s ním umí pracovat pořád stejně. Docker dělá totéž se softwarem: uvnitř může být cokoli, ven kouká vždy stejné rozhraní.

Proč to vývojáři používají:

  • Konec hlášky „u mě to funguje“ – když je prostředí součástí balíku, chová se aplikace všude identicky.
  • Rychlé rozjetí – kontejner nastartuje během vteřin, na rozdíl od celého virtuálního stroje.
  • Oddělení – dvě aplikace, z nichž každá chce jinou verzi téže knihovny, si na jednom stroji nepřekážejí.
  • Snadné vrácení zpět – balík má verze, takže se dá kdykoli spustit ta předchozí.

Docker se často plete s virtuálním strojem, a rozdíl je podstatný. Virtuální stroj, jaký dostanete u VPS, obsahuje celý operační systém včetně jádra a chová se jako samostatný počítač. Kontejner sdílí jádro se strojem, na kterém běží, a nese si jen to, co je nad ním. Proto je mnohem menší a startuje rychleji, ale zároveň nemůže běžet na jiném druhu systému.

Praktická otázka: potřebuji Docker pro svůj web? Skoro jistě ne. Běžný web na WordPressu, e-shop nebo firemní prezentace potřebují PHP, databázi a místo na disku – a to všechno je na webhostingu připravené. Docker je nástroj pro vývoj a provoz vlastních aplikací, obvykle v týmu, kde ho někdo umí spravovat.

Na CHOST.cz Docker zákazníkům nenabízíme, tohle heslo je čistě vysvětlující. Pokud chcete kontejnery provozovat, potřebujete stroj, kde jste sami sobě správcem, tedy vlastní server. Na sdíleném hostingu to nedává smysl už z principu: každý web u nás běží v odděleném prostředí, o jehož nastavení se staráme my, takže si na něm nemůžete spouštět vlastní systémové služby.