Docker vychází z tradičních linuxových distribucí, jako jsou Red Hat Enterprise Linux nebo Ubuntu, a umožňuje zabalit aplikace a služby jako bitové kopie, které běží ve svých vlastních přenositelných kontejnerech.
Ty přitom lze přesouvat mezi fyzickými, virtuálními a cloudovými prostředími bez nutnosti jakékoli úpravy. Pokud si například vytvoříte bitovou kopii Docker na notebooku nebo fyzickém serveru s operačním systémem Ubuntu, můžete ji spouštět v libovolném kompatibilním Linuxu – a to kdekoliv.
Docker tímto způsobem nabízí velmi vysoký stupeň přenositelnosti aplikací a agility, a vyhovuje tak vysoce škálovatelným aplikacím. Povaha Dockeru však také umožňuje spouštění jedné služby nebo aplikace v každém jednotlivém kontejneru namísto sady, jako je například LAMP.
Tým Dockeru zhruba rok usilovně pracoval na variantě, kterou považuje za vhodnou pro produkční prostředí, a tento cíl se mu podařilo splnit letos v červnu představením verze Docker 1.0.
Ta přináší z hlediska vhodnosti pro produkci oproti původním návrhům významná vylepšení. Docker se například dokáže přímo připojit k rozhraní sítě hostitele a nemusí využívat interní přemostění požadované v jeho dřívějších verzích.
Propojené kontejnery Dockeru se vzájemně dokážou najít pomocí názvu hostitele. Hostitelské soubory se upravily tak, aby odpovídaly správnému hostiteli.
Docker také dobře funguje s technologií SELinux. Podporuje lepší monitoring, nabízí protokoly s časovým razítkem pro každý kontejner a podporuje i zrcadla registrů pro více koncových bodů, což zvyšuje redundanci a spolehlivost.
To všechno jsou pozoruhodná vylepšení, která významně zvyšují vhodnost Dockeru pro více případů použití a produkčních scénářů. Navíc vás vyzkoušení nebude nic stát. Docker je k dispozici zdarma pod open source licencí Apache 2.0.
Verze 1.0 přináší také novou sadu dokumentace a komerční balíčky podnikové podpory od samotného týmu Dockeru. Tato společnost vyvíjí Docker Hub, což je cloudová služba pro spolupráci, obsah a automatizaci pracovních postupů. Jako open source program obsahuje Docker kousky kódu od více než 460 přispěvatelů.
„Úroveň podpory ekosystému, které Docker dosáhl, je fantastická a ukazuje na potřebu tohoto druhu technologie na trhu i nabízenou hodnotu,“ upozorňuje Al Hilwa, ředitel IDC pro výzkum vývoje softwaru. „Tento ekosystém předznamenává budoucí bohatost služby DockerHub a obchodní strategii společnosti.“
Docker v kostce
Kontejner Docker je ve své podstatě virtuální stroj, ale mnohem odlehčenější. Umožňuje například hladce přesouvat aplikace a služby mezi hostitelskými servery. Kromě toho obsahuje nástroje pro verzování a správu bitových kopií, které dovolují jednoduché škálování a elasticitu aplikací a služeb pro instance na fyzických i virtuálních serverech nebo v cloudu.
Jediným požadavkem kladeným na nosného hostitele je, aby běžel na poslední verzi linuxového jádra (kernel 3.8 nebo vyšší), které podporuje funkce LXC (Linux Container), jež Docker využívá.
Například můžete vytvořit kontejner Docker, který nedělá nic jiného, než že v něm běží služba memcached pro Apache Web server. Tento kontejner se může udělat ze standardního Linuxu, jako jsou Ubuntu nebo CentOS, a požadovaná služba se nainstaluje a nakonfiguruje stejně jako na jakémkoli Linuxu.
Tento kontejner lze pak předat do řízení verzí Git a provozovat na libovolném dalším systému, kde ho můžete okamžitě spustit – stane se z něj vlastně funkční produkční služba.
Tak lze instanci memcached replikovat a spouštět na virtuálním serveru, fyzickém serveru, v cloudu Amazon nebo kdekoliv jinde, kde je možné Docker spustit.
Nemusíte se starat o závislosti služeb mezi hostiteli, ani se nemusíte starat o instalace aplikací, emulaci hardwaru či cokoli ze složitostí tradiční virtualizace. Stačí jen spustit správně vytvořený kontejner tam, kde ho chcete provozovat.
Jak Docker funguje
Docker využívá vytváření kontejnerů založených na bitových kopiích Linuxu. Stejně jako ostatní nástroje paravirtualizace (například Virtuozzo) všechny instance v podstatě běží na jádře hostitelského systému, ale jsou zamknuté ve svém vlastním runtime prostředí, odděleně od prostředí hostitele.
Kompletní článek zahrnující spoustu dalších poznatků, trendů a zajímavostí si můžete přečíst v Computerworldu 15/2014.