Spíš než tohle označit microcontainers by se měly kontejnery postavené nad klasickými distribucemi (jessie v případě toho node.js/fat) označit za bloatcontainers. Apt-get si např. generuje keše ve /var/cache/apt (cca 40MB), ani ty se v tom dockerfilu po instalaci dalších vrstev nemažou.
Možná kdyby to místo alpine linuxu postavili nad openwrt, smrsknou to ještě víc :-)
Ja teda vic verim maintainerum debianu nez nejakymu nahodnymu hipsterovy ;)
Take mi bude software nainstalovany z balicku narozdil od containeru respektovat veskere systemove nastaveni (napr. vlastni certifikaty).
Kontejnery jsou super, ale bohuzel je pred par lety objevili supa-cool-hipsteri a cpou je tam kde spis uskodi nez pomozou - ale tak uz to byva :)
Ved to je fajn, ale predsa docker tu nie je na to, aby nahradil systemove balicky. Ked uz chcete porovnavat docker, tak ho porovnavajte s virtualizacnymi technologiami (vmware alebo virtualbox).
Pre tych, ktori maju chut sa dozvediet viac, o com tento "hipstersky" nastroj je, odporucam prejst si tento tutorial:
http://prakhar.me/docker-curriculum/
Balíčkovací systémy určitě nejsou určeny k tomu, abych vzal jeden balíček, a spustil ho na svém Debianu, na svém RedHatu a u několika cloudových poskytovatelů. Stejně tak nejsou určeny k tomu, že ať balíček nainstaluju kamkoli, vždy aplikace poběží ve stejném prostředí. Psal jste o změně systémových certifikátů – a to je přesně to, čemu chce Docker zabránit. Balíčkovací systémy tedy v žádném případě to samé nedělají.
Chtel jsem spis poukazat na to, ze se Docker upravdu pouziva na distribuci aplikaci - narozdil od hw virtualizace. Ano, mame tu napriklad vmware "virtual appliances", ale to je precejen neco jineho a Qubes OS je spise experimentalni, a hlavne nezatajuje nevyhody te separace.
Spis nez Docker mam na mysli pokusy jako AppImage nebo Snappy.
Navic to "kdekoliv" v podani dockeru take neznamena "kdekoliv", ale "kdekoliv, kde jadro dodrzuje dane ABI (+ nejake dalsi omezeni)".
S temi certifikaty jsem to myslel tak, ze mam v systemu pridanou vlastni CA a aplikace to respektuji. Nebo me napada "drsnejsi" priklad - mam balicek s vlastni "libc", kde mam opatchovane "gethostbyname" a "getaddrinfo" - v soucasne situaci neni problem. Pokud mam X aplikaci nainstalovanych v kontejnerech, tak smula a abych si na desktopu poustel puppet nebo saltstack.
„Distribuce aplikací“ je široký pojem. Balíčkovací systémy se používají pro instalaci aplikací, Docker se používá pro distribuci hotového běhového prostředí, ve kterém je mimo jiné i nainstalovaná aplikace. Kdybych to přirovnal k jídlu, distribuční balíčky jsou takový polotovar, ke kterému přidáte nějaké suroviny, podle návodu to šoupnete do mikrovlnky a vytáhnete hotové jídlo – které je ale pokaždé jiné, protože vaše doplňkové suroviny budou trochu jiné, každá mikrovlnka se chová jinak atd. Docker vás naproti tomu přenese do jídelny s hotovým jídlem, které bude vždy naprosto stejné, a díky tomu, že bude servírováno vždy ve stejné jídelně, budete z něj mít i stejný dojem.
S temi certifikaty jsem to myslel tak, ze mam v systemu pridanou vlastni CA a aplikace to respektuji. Nebo me napada "drsnejsi" priklad - mam balicek s vlastni "libc", kde mam opatchovane "gethostbyname" a "getaddrinfo" - v soucasne situaci neni problem. Pokud mam X aplikaci nainstalovanych v kontejnerech, tak smula a abych si na desktopu poustel puppet nebo saltstack.
Cílovou skupinou Dockeru jsou ti, kteří považují za výhodu, že tohle Docker neumožňuje. To je právě jeden z účelů Dockeru – abyste nemusel řešit chyby způsobené tím, že na jednom prostředí je přidaná vlastní CA nebo opatchovaná libc.
Ten poucujici odstavec o jidelnach jste si mohl odpustit. Samozrejme ze kontejnery maji smysl pokud se dorucuje "kompletni reseni" (v uvozvokach protoze je stale samozrejme potreba resit napojeni na monitoring, puppet, nastaveni site (vzdyt Docker ve vychozim nastaveni vse NATuje) apod.) Ale i presto, je to casto mene prace nez bez vyuziti kontejneru - tady jsou super!
Problem nastava, kdyz se z kontejneru dela primarni distribucni kanal - tohle se teda taky hlavne AppImage a Snappy, ale i Dockeru (a marketing Dockeru na tohle aktivne cili).
Asi jste moc docker imagu nevidel. To, ze si neco nabali plnej pytel balastu neznamena, ze se tim problemy vyresi. Zkousel jste treba nejaky vetsi aktualizovat? Bez vypadku?
Rozhodne je pouziti balicku vetsi jistota spusteni a bezproblemove aktualizace nez docker. Jen se to musi umet.
Jenže to se v cloudu, kde má Docker největší uplatnění, musí řešit tak jako tak. Sessions, db a jine persistentí věci stejně musím mít mimo instanci, které se dynamicky přidávají a ubírají podle zatížení. A síťová spojení řeším buď tak, že klient se selháním počítá a dotaz opakuje, nebo ten příslušný Docker kontejner držím naživu, dokud na něj jsou nějaká spojení, viz https://docs.quay.io/solution/zero-downtime-deployments.html