Docker konténerizálás - OS, alkalmazások fórum

üzenetek

hozzászólások


haddent
(addikt)
Blog

Nem találtam Dockerrel foglalkozó topicot, szóval gondoltam nyitok egyet, hátha másnak is hasznos lesz :)

Mi is az a Docker?
Egy konténerizációs forma. Konyhanyelven a fizikai vas (bare-metal) és a teljes virtualizáció (kvm, hyper-v stb.) közt helyezhetnénk el valahol.
Főbb előnyei a szeparáció (egy-egy konténer izoláltan fut a hosthoz és egymáshoz képest) és a gyors, könnyű, kompatibilis disztribúció (konkrétan bármilyen alkalmazást becsomgolsz egy Docker konténerbe, akkor az pontosan ugyanúgy fog futni bármilyen hoszton, bármilyen OS alatt bármilyen verzióval, amennyiben egyetlen előfeltétele, a Dockerd engine teljesül).
Ezen felül természetesen el lehet durvulni vele és stackeket, swarmokat létrehozni, amiket aztán a felhőben (pl. Kubernetes) is futtathatunk, így osztva a terhelést, biztosítva a zero downtime -ot stb., de talán ennyire ne menjünk előre.

Akkor most ez virtualizáció?
Nem. Pl. éppen ezért Linux hoszton nem tudsz Windows konténereket futtatni (nem mintha nagyon lennének vagy szükségesek lennének), illetve éppen ezért nincs grafikus megjelenítés, nem tudsz belépni "remote desktop" -pal a környezetbe (ez nem teljesen igaz, létezik pl. X11 forwarding, de ez eléggé abuse / erőszakolásnak számít és erősen megkérdőjelezi, hogy valóban Docker kell-e a feladat megoldásához)

Teljesítmény
Szóval tisztáztuk, hogy nem virtualizációról beszélünk, tehát akkor nincs overhead. De, van, de linux hosztokon elenyésző. (Szubjektív, nem túl reprezentatív, de érdekes példa: ivy bridge alapú intel pentium G2130 procival és 4GB rammal kb. 20 servicet futtatok a szerveremen, köztük webszerver, torrent, Jellyfin (Emby) média stream, vpn stb., illetve ezek mellett tűzfalként is szolgál a gép, mégis röhögve bírja)
Nehéz százalékosan általánosságban adni egy számot, mivel nyilván alkalmazás- / felhasználásfüggő, de amennyiben bármilyen, nem grafikus alkalmazásunk (bármilyen szerver, kiszolgáló, háttérfolyamat stb..) van, mindenképp érdemes lehet kipróbálni.

Miért?[/B
Nincs is konkrét virtualizáció, még overhead is van, akkor mégis minek? Azért, mert teljes mértékben elszeparálhatjuk alkalmazásainkat. Pl. miért akarnánk, hogy a webszerverünk és a torrent szerverünk egy környezetben fusson? Minek "lássanak át egymásra"? Sőt, minek férjenek hozzá a fizikai vashoz az abszolut szükségesnél jobban?
Ezen felül nem kell bajlódni semmilyen 26 ezer lépéses telepítéssel, nem létezik az inkompatibilitás és a dependencia fogalma, nincs cross-dependency, nem kell milliónyi, a hoszt számára felesleges csomagot karbantartanunk. Egy-egy alkalmazás esetén elég mindig csak az ő saját image -ét frissíteni és máris a legfrissebb, legbiztonságosabb, javított alkalmazás fog futni, ráadásul szeparálva, ami ugyan nem feltétlen teljes mértékben megegyező biztonsági izoláció a teljes virtualizációhoz képest, de közel állhat hozzá.
Személyes véleményem szerint a rendezettség és letisztultság is fontos egy ilyen környezet esetén, hiszen minden logot, mentést/adatot és konfigurációt a mi saját elveink szerint rendezhetünk, 1-1 mappába gyűjtve, nem szétszórva a root / -on. Így nyilván a biztonsági mentés / backup is jóval egyszerűbb.

Témaindítónak talán elég ennyi :P

üzenetek