Jak vlastne funguje Docker?

miro

Jak vlastne funguje Docker?
« kdy: 17. 02. 2015, 15:56:21 »
Ahoj,

mám trochu zmatek v tom, jak funguje Docker. Jsou to kontejnery a každý vychází z nějakého základního obrazu. Znamená to tedy, že s každým běžícím docker kontejnerem tam zároveň běží celý ten systém, který je v základním obrazu? Takže když mám 5 kontejnerů, běží mi 5 systémů? Nebylo by lepší nějaké řešení ve stylu FreeBSD jailů? Nebo to celé špatně chápu?


3ugeene

Re:Jak vlastne funguje Docker?
« Odpověď #1 kdy: 17. 02. 2015, 16:02:13 »
ne, běží jen instance aplikace + případně knihovny, nikoliv nová instance systému.

Jimm

Re:Jak vlastne funguje Docker?
« Odpověď #2 kdy: 17. 02. 2015, 17:49:11 »
A po pravdě, ty jsi to googlil a četl, nebo jsi to někde zaslechl, napadlo tě jak by to mohlo fungovat a šel ses rovnou zeptat jestli tě to napadlo správně?

miro

Re:Jak vlastne funguje Docker?
« Odpověď #3 kdy: 17. 02. 2015, 18:25:50 »
Googlil a cetl. Nedochazi mi ale, jak to dokaze napriklad na Dockeru, co ma pod sebou CentOS 7 pustit image, ktery vychazi z Ubuntu 14.04 bez toho, aby bezel cely system. Vim, ze se nepousti init (a pokud bych chtel Docker vyuzit na hostovani celych VM, tak ho spustim). A taky nutno dodat, ze jsem IT lama, pracuji jako technik, co zapojuje pocitace zamestnancum, ne jako admin. :)

DK

Re:Jak vlastne funguje Docker?
« Odpověď #4 kdy: 17. 02. 2015, 19:32:34 »
Cely system samozrejme bezi, ale to je ten, pod kterym docker poustis. On CentOS se zase tak moc od Ubuntu nelisi, maximalne predinstalovanyma knihovnama a balickama. Takze kernel je sdileny, funguje to podobne jako jails.

A pokud mas porad pochybnosti, mrkni na LXC


ToJeJedno

Re:Jak vlastne funguje Docker?
« Odpověď #5 kdy: 18. 02. 2015, 18:35:22 »
Dobry den,

prave sa rozhodujem medzi LXC a Docker-om pre izolaciu Tomcat-ov, ktora technologia je preto vhodnejsia s ohladom na  (bezpecnost a manazment zdrojov)?

Dakujem.

ldj

Re:Jak vlastne funguje Docker?
« Odpověď #6 kdy: 18. 02. 2015, 19:50:11 »
urcite Docker. je s nim obecne mene prace a vetsinou uz (image s tomcatam, pripadne db atp) za tebe uz nekdo udelal. tazke vlastne jen udelas jednu vrstvu s tvou aplikaci a pustis.
Docker jiank neni zadny technologicky zazrak ani nic noveho je to jen fajn sada nastroju pro snadnou praci s technologiemaktere v linuxu jsou jiz dlouho

Re:Jak vlastne funguje Docker?
« Odpověď #7 kdy: 22. 02. 2015, 10:38:35 »
Takže když mám 5 kontejnerů, běží mi 5 systémů?
Problém je v tom, že Docker je ve strašlivém hypu, takže o něm dělají přednášky lidi, kteří dovnitř nevidí (nechtějí vidět), a popisují to strašně zavádějícím způsobem. Ve skutečnosti je princip takový, že docker jenom spustí nějaký PROCES v nějakém typu namespacu. Tzn. proces vidí jenom ty prostředky (soubory, procesy, síťová rozhraní...), které mu docker řekne, že má vidět.

Takže žádné "běží systém", ale "běží proces". Navíc si musíš ujasnit, co vlastně "běží systém" v unixovém světě znamená - v podstatě tohle: běží kernel + nějaké obslužné userspacové utility (např. udev nebo jak se to teď na Linuxu jmenuje) + "systémové" služby (např. ssh) + aplikační služby (např. www server). V dockeru běží jenom ten proces, který řekneš, že tam běžet má. Typicky je to jenom jedna aplikační služba (např. www server), míň typicky nějaký supervisor (např. pythonní supervisord), který pak spustí nějaké další služby (ssh server a www server).

Nebylo by lepší nějaké řešení ve stylu FreeBSD jailů? Nebo to celé špatně chápu?
Asi to špatně chápeš, protože ono to je v podstatě úplně to samé jako jails. Akorátže jails jsou deset nebo kolik let staré, takže je to narozdíl od linuxových kontejnerů léty prověřená technologie. Plus taky FreeBSD je přehlednější než linuxové distribuce, takže např. je úplná pohodičku v jailu pustit normální init a celé se to tímpádem jeví +/- stejně jako normální systém. U Linuxu se tohle řeší všelijak krkolomně, protože při spuštění v kontejneru spousta věcí nefunguje, takže se vymýšlí opět nějaké hackovité workaroundy, jak v kontejneru spustit víc služeb. To by měl asi změnit systemd, který by tohle měl líp podporovat, ale o tom bych se raději nevyjadřoval :)

prave sa rozhodujem medzi LXC a Docker-om pre izolaciu Tomcat-ov, ktora technologia je preto vhodnejsia s ohladom na  (bezpecnost a manazment zdrojov)?
Pokud je to do produkce, tak ani jedno. Kontejnerizace na Linuxu je příliš mladá a bezpečnost je v plenkách. Management zdrojů taky myslím ještě není moc doladěný (ale tady si nejsem úplně jistý, praktické zkušenosti nemám). Pokud tyhle featury opravdu chceš, použij nějaký systém, kde jsou tyhle věci production-ready už nějaký ten pátek: Solaris/SmartOS/...

MartinX

Re:Jak vlastne funguje Docker?
« Odpověď #8 kdy: 22. 02. 2015, 11:26:37 »
Pokud tyhle featury opravdu chceš, použij nějaký systém, kde jsou tyhle věci production-ready už nějaký ten pátek: Solaris/SmartOS/...
[/quote
Este pridam, ze aj v AIXe existuju kontainery, ktore sa nazyvaju "Workload Partitions" uz par rokov a funguju v 2 verziach - System WPAR, ktora sa tvari ako samostatny system (ma vlastny root, /home a /var filesystem, /usr sa defaultne zdiela read-only s hlavnym systemom, ma vlastne kopie systemovych sluzieb ako sshd, vlastnu IP adresu, samostanych uzivatelov a pod.) a Application WPAR ktora obsahuje len jeden konkretny proces (umoznuje ale riadit jeho pristup k zdrojom ako pamet, procesor a I/O).