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.
A ještě jedna věc mě mate: pokud je Docker technologie na izolování aplikací od sebe navzájem a od systému, tak jak je vhodná pro owncloud, který má v popisu práce krom jiného nakonfigurovat sambu? To má sambu u sebe? A co když si vedle nainstaluju jinou sambu? To budou jako spolu soupeřit na LAN, která co nabídne?
Asi bych si měl o Dockeru něco přečíst. Tohle zřejmě bude mít nějak vyřešeno, neboť pro apache a mysql platí totéž, jen ještě v horším. Nějakou tou děsivou proxy?
A celá ta snappy věc je IMHO hot především v tom, že umožňuje verzování a roll-back těch dockerovských kontejnerů. To se může hodit. Ale je to opravdu hodně daleko od apt-get.
Na Ubuntu 12.04:
michal@Asus:~$ kvm -m 512 -redir :8443::443 -redir :8022::22 ubuntu-core-alpha-01.img
kvm: -redir :8022::22: 'ide0-hd0' uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
kvm: -redir :8022::22: could not open disk image ubuntu-core-alpha-01.img: Operation not supported
respektive lze zkusit v některém z cloudů, OVA nebo Vagrant, viz http://www.ubuntu.com/cloud/tools/snappy