Portál AbcLinuxu, 5. června 2024 07:04
Sračky vevnitř jsou jiný problém, který s dockerem nemá mnoho společného. Problém je, že docker neškáluje.
Nahoře se je dotaz, jak se aktualizují knihovny uvnitř kontejneru. Odpověď je, že se sestaví nový obraz z opravených knihoven. Problém je, že takový obraz může mít stovky megabajtů, které se musí při instalaci přenést na každý stroj. Docker sice umí přenášet rozdíly mezi obrazy, ale jen po linii dědičnosti obrazů. Jenže systémové knihovny jsou obvykle schovány v dalekém předku, takže to nemá smysl.
Jiný přístup je v existujícím obraze zaktualizovat jednu knihovnu a rozdistribuovat nový obraz jako poděděný rozdíl. Tohle škáluje při instalaci, ale ne při samotné aktualizaci. Pokud totiž takových obrazů pro různé produkty máte na starost stovky, tak přestává být možné udržet si přehled, který jste už aktualizoval, který ne a který aktualizaci nepotřebuje. Takže jste nakonec tam, kde jste byl před tím s klasickou distribucí s balíčky.
To že docker pužívají hostingy jako "vps", to že docker na produkci instalují programátoři, to že většina balíčků ve veřejném hub jsou sračky napsané zase jen programátory je realita, z které ale také nejsem nadšeny.Ta snaha navazet se do programatoru je komicka. Z dobreho programatora se znalosti systemu je jednoduzsi udelat administratora nez naopak, a tim se nezastavam lidi kteri nekam placnou ubastleny docker a pak se vykaslou na udrzbu.
Pokud programátor zná linux, žádný problém, potkal jsem ale desítky programátorů a opravdu znalost linuxu není častá ;)Totez plati od adminech. Tech klikacu odkojenych na windows kteri copy-pastovali cosi z Internetu do rootovskeho terminalu, bez poradne znalosti, klidne urcene i pro jinou verzi/distrubuci, a pak kdyz to cele ro*****li tvrdili, jak je Linux na h***o, jsem jiz zazil nekolik.
Tech klikacu odkojenych na windows kteri copy-pastovali cosi z Internetu do rootovskeho terminalu, bez poradne znalosti, klidne urcene i pro jinou verzi/distrubuci, a pak kdyz to cele ro*****li tvrdili, jak je Linux na h***o, jsem jiz zazil nekolik.:D
To, co se běžně prezentuje jako kontejnery, ano. Docker umí údajně využít i unionfs a to už by mohlo být zajímavější - spousta knihoven by se dala "zabalíčkovat" do menšího množství vysokorúrovňových obrazů, nad kterými by se stavěly samotné aplikační kontejnery. V případě bezpečnostního problému by se prostě vytvořil nový image opravené knihovny.
Kromě nevýhody drobné ztráty místa na disku to má nespornou výhodu - vyšší vrstvy můžete "přesunout" na fixnutou verzi až budete chtít, ne s dalším restartem služby nebo stroje. Nad tímhle zajásá každý, kdo musí udržovat closed-source kritické firemní aplikace, které psala banda neandrtálců a které se podaří nastartovat až na 3. pokus a s tou správnou verzí libm.
Kontejnery mají smysl hlavně u služeb, které mají více daemonů, stavových souborů či socketů někde ve /var
- dají se schovat do jednoho kontejneru se snadným on/off vypínačem, který nejenže "čistě" zabije všechny související procesy, ale odmountuje všechny mountpointy, uvolní sdílené IPC prostředky, apod.
A co teprve použití takovýchto kontejnerů s btrfs snapshoty -- je libo bezstavové služby?
Nevýhoda? Někdo by musel udržovat vrstvené obrazy podobně jako distribuce udržují balíčky a to se nikomu nechce. Je daleko jednodušší do kontejneru nacpat celou distribuci a v ní spustit jednu službu.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.