Přiznám se rovnou, že jsem krásy Dockeru zatím nepochopil. Na první pohled mi to trochu připomíná svět Windows - každá aplikace má ssebou většinu (v tomto případě zřejmě 100 %) potřebných knihoven. OK, budiž. Takže třeba libssl bude u každé aplikace, a až se najde příští bezpečnostní problém, tak musí všichni dodavatelé aplikací (ať už docker nebo snappy) updatovat svoje balíčky, je to tak? Znamená to krom jiného, že ty násobné knihovny budou zabírat víc místa na disku i v RAM, ne? Není to jakdyž krok opačným směrem od shared libraries? Někam k staticky linkovaným binárkám z dob DOSu či ještě dříve?
Každá Docker aplikace má s sebou celý systém (kromě jádra). Pokud se vyskytne bezpečnostní problém, musí se každý kontejner zvlášť aktualizovat. Jednotný názor, jak to udělat, není. Někteří docker nadšenci dokonce ani nevidí potřebu něco takového řešit. Někdo rozběhne v každém kontejneru cron s unattended-upgrades (prasárna), někdo aktualizuje všechno zvenčí.
Paměťová náročnost je mizivá, protože pokud všechny docker kontejnry pocházejí ze stejného základu, všechny instance sdílejí jednu kopii v paměti. Právě tohle způsobuje atraktivitu LXC - získáte dokonalé oddělení jako u virtualizace, ale prostředky jsou sdílené a proto to znamená jejich zásadní úsporu.
Pokud mám na jednom stroji mnoho docker kontejnerů s web serverem (třeba co doména, to kontejner), musím před to dát nějakou proxy (klidně opět v jiném kontejneru).
Každopádně Docker je sexy a doporučuju si o něm přečíst.
Nejsou rozkopírované. Disk tvoří read-only vrstvy pomocí union fs - https://docs.docker.com/terms/layer/
Takže můžu mít klidně tisíc kontejnerů a pokud jsou postavené na stejném základu, zabírají oproti "plné virtualizaci" zlomek místa v paměti i na disku.
Spousta mass-hostingů už používá Docker v produkci. Každý uživatel má root přístup, svůj Apache, svůj mysql, svoji verzi php i konfiguraci. Konec složitého bádání, jak uživatele oddělit. Uživatelům lze nainstalovat, co si jen vzpomenou.
Pro určité typy použití je Docker revoluce.