LXD nebo Docker

LXD nebo Docker
« kdy: 26. 01. 2020, 00:52:29 »
Zdravím,
plánuji udělat aplikaci s rozhraním v JS (budu používat zřejmě Node.JS) a některými backend komponentami jak v Pythonu tak v JS. Ale nechci si dělat při spouštění a následných (ručních) testech v systému nepořádek, tak jsem si řekl že to budu spouštět v kontejneru. Jestli by mělo smysl spouštět celé prostředí v LXD nebo vytvořit Docker kontejner. Budu tam instalovat asi node a python.

LXD nebo Docker?


Re:LXD nebo Docker
« Odpověď #1 kdy: 26. 01. 2020, 05:41:45 »
Odporúčam docker, je tu presne pre tento účel. Pre python aj node nájdete na docker hube predpripravené image, môžte si tam len doplniť svoju aplikáciu.

Ďalej, doporučovaná cesta je rozdeliť jednotlivé komponenty do samostatných kontajnerov a použiť napríklad docker-compose. Ale ako študijná úloha práce s dockerom kvôli jednoduchosti samozrejme možno dať všetko do jediného.

Re:LXD nebo Docker
« Odpověď #2 kdy: 26. 01. 2020, 11:23:46 »
A co podman? Co by bylo lepší, Docker nebo Podman?
Zdroj mě nějak nezajímá, budu používat Snap Store (Používám Ubuntu).

Re:LXD nebo Docker
« Odpověď #3 kdy: 26. 01. 2020, 12:15:48 »
Pokud máte možnost volby, pak určitě Podman. Podman je Docker udělaný správně (nebo alespoň podstatně lépe).

Re:LXD nebo Docker
« Odpověď #4 kdy: 26. 01. 2020, 13:37:55 »
A proč ne LXD? Docker má připravené image a podporu pro návaznosti v procesu vývoje, to je jasné, ale jinak?


Re:LXD nebo Docker
« Odpověď #5 kdy: 26. 01. 2020, 14:36:20 »
... Podman je Docker udělaný správně (nebo alespoň podstatně lépe).

Mohl bys to rozvést?

Re:LXD nebo Docker
« Odpověď #6 kdy: 26. 01. 2020, 15:16:55 »
A proč ne LXD? Docker má připravené image a podporu pro návaznosti v procesu vývoje, to je jasné, ale jinak?

LXD se víc hodí na kontejner s kompletním systémem, jako odledhčená virtualizace i když aplikační kontejnery podporuje taky. Docker je vhodný na provoz jedné konkrétní aplikace, ne na provoz celého stacku v kontejeru.

Re:LXD nebo Docker
« Odpověď #7 kdy: 26. 01. 2020, 16:05:50 »
... Podman je Docker udělaný správně (nebo alespoň podstatně lépe).

Mohl bys to rozvést?
Docker má vše v jednom (správu obrazů, procesů, kontejnerizaci); vše dělá přes démona; počítá se s tím, že vše dělá root a že kdokoli z kontejneru může získat roota na celém stroji – a když to chcete zabezpečit, musíte řešit, co vše nastavit, povypínat, zakázat atd. a stejně si nikdo není jistý, zda je výsledek bezpečný.

Docker ukázal cestu a za to mu patří místo v síni slávy, ale pořád je to spíš přerostlý prototyp nebo technologické demo. Už bylo více pokusů udělat to více unixovou cestou a lépe propojit kontejnery se zbytkem systému – např. rkt. Vzhledem k tomu, že za Podmanem stojí RedHat a udělal ho natolik kompatibilní s Dockerem, že doporučují udělat si v shellu alias docker=podman, věřím, že s Podmanem se to povede.

Re:LXD nebo Docker
« Odpověď #8 kdy: 26. 01. 2020, 22:38:51 »
Pokud člověk neví co tam přesně v tom kontejneru potřebuje doporučil bych lxd.
Lxd nabízí plnohodnotný systém a člověk si vystačí s pár příkazy na to aby kontejner nainstaloval, spustil a do něj se nalogoval.
Návod viz https://ubuntu.com/blog/lxd-in-4-easy-steps
« Poslední změna: 26. 01. 2020, 22:40:24 od technik007cz »

Re:LXD nebo Docker
« Odpověď #9 kdy: 27. 01. 2020, 08:12:37 »
Abych pravdu řekl, moc nechápu ty rady použít LXD. V Dockeru/Podmanu si budu spouštět jednotlivé aplikace v samostatných kontejnerech, když se rozhodnu vyzkoušet Node.js 13 místo 12 LTS, prostě spustím další kontejner, když budu chtít mít tři různé konfigurace Pythonu, prostě budu mít tři různé kontejnery. Když budu chtít spustit testy na CI, vezmu hotový image s aplikací používaný pro vývoj a spustím ho na CI serveru.

Samozřejmě ten Docker kontejner nebude jeden, ale bude jich více – pro každou aplikaci jeden, pro používané služby (třeba NoSQL databáze) další (opět pro každou jeden).

LXD mi vytvoří nový plnohodnotný systém, takže místo svého počítače bych si dělal nepořádek v tom LXD. Tím ale přece nic nezískám. Stejně budu muset řešit ten nepořádek, stejně při přenosu aplikace jinam budu mít problém v tom, že mám v tom LXD své specifické prostředí.

wabi

Re:LXD nebo Docker
« Odpověď #10 kdy: 27. 01. 2020, 14:58:22 »
Určitě Docker (nebo Podman). Potřebujete jen spustit izolované procesy, mezi nimi nasimulovat síť apod. Nechcete řešit "instalaci" celého virtuálního stroje (což je zjednodušeně to, co vám LXD nabízí).

LXD je prostě nástroj na úplně jiný use-case než který popisujete :).

Re:LXD nebo Docker
« Odpověď #11 kdy: 27. 01. 2020, 22:48:31 »
Citace: hawran diskuse link=topic=22451.msg324218#msg324218
...
Mohl bys to rozvést?
Docker má vše ...
Aha, ok, ten podman jsem nějak zasklil.

Nicméně zatím tu pořád vidím jen školení docker...., žádný henten podman...
(jen konstantuji)


Re:LXD nebo Docker
« Odpověď #12 kdy: 28. 01. 2020, 08:20:57 »
Nicméně zatím tu pořád vidím jen školení docker...., žádný henten podman...
(jen konstantuji)
V tom asi bude nějakou dobu trochu zmatek, protože dnes Docker znamená jak obecnou technologii, tak její konkrétní implementaci – a druhá implementace je Podman. Předpokládám, že ta školení jsou tak nazvaná mimo jiné proto, že Docker jako název té technologie je známý, Podman daleko méně. Nejspíš většina věcí, kterou se na tom školení naučíte (možná i všechny) budete moci využít i s Podmanem. Klidně je i možné, že se to ve skutečnosti bude školit na Podmanu.

Re:LXD nebo Docker
« Odpověď #13 kdy: 28. 01. 2020, 11:00:39 »
Určitě Docker (nebo Podman). Potřebujete jen spustit izolované procesy, mezi nimi nasimulovat síť apod. ...
LXD je prostě nástroj na úplně jiný use-case než který popisujete :).
a presne tady je pro lokalni vyvoj pripraveny docker-compose (jak uz tady nekdo zminoval). prakticky nikdy jsem nedaval docker run, proste nez tam mlatit ty miliony parametru tak zlaty .yml file
Děkuji za možnost editace příspěvku.

Re:LXD nebo Docker
« Odpověď #14 kdy: 28. 01. 2020, 15:46:50 »
Na testy Docker (např. je podporovaný přímo gitlab-runnerem). Pro produkční běh LXD, např. z důvodu standardního nasazování bezpečnostních aktualizací (kvůli aktualizaci nemusím vždycky otáčet celou aplikaci, aktualizace v rámci distribucí bývají rychlejší než někdo aktualizuje zdrojový Docker image atd.).