A Docker és a virtuális gépek (KVM,Hyper-V, VirtualBox, VMware…) között rengeteg különbség és hasonlóság van. Ebben a cikkben egy rövid áttekintést adok a különbségekről.

Docker

Működési elv

A gazdagépen futó kernelt használja, ezért a docker image-n belül az operációs rendszernek meg kell egyezni a gazdagép operációs rendszerével (Csak a kernelnek kell megegyezni, egy UBUNTU gazdagépen futtathatunk Debian, Slackware vagy egyéb vendég konténert)

Memória használat

Limitálni lehet az minden konténer minimális és maximális memóriahasználatát, a megadott határokon belül a pillanatnyi igények határozzák meg, hogy a gazdagép memóriájából mennyit fogyaszt el

Processzor

A beállítástól függően vagy a rendelkezésre álló összes processzort használhatja, vagy a rendszergazdának lehetősége van korlátozni a használható processzormagok számát.

Mivel a gazdagép kernelét használja jóval kevésbé erőforrás igényes, mint a virtuális gép, nem fut példányonként külön kernel, és az operációs rendszerhez tartozó egyéb szolgáltatás.

A processzor szálakat a gazdagép kernelén keresztül használja.

Boot idő

A konténer indítási ideje annyi, ami az adott szolgáltatás indításához szükséges.

Biztonság

Üzemszerűen a konténerek formalizált módon (közös mappák, fájlok, hálózat) tudnak egymással kommunikálni

Egy esetleges támadó, vagy programhiba a gazda gép kernelén keresztül támadhatja a többi konténert vagy a gazda gépet.

Erőforrás igény

Jelentősen alacsonyabb, mint a virtuális gépeké az egyszerűbb felépítés miatt, azonban a megosztott kernel nem minden esetben fogadható el.

Hypervisor

Működési elv

Teljes hardvert virtualizál, ezért minden példányban fut egy teljes operációs rendszer. Egy hardveren így több operációs rendszer is futhat (Windows, Linux,BSD), akár eltérő verziókban

Memória használat

A telepítéskor meg kell adni, hogy az adott virtuális gép mennyi memóriát használ, ezt induláskor be is foglalja a gazdagép memóriájából

Processzor

Be kell állítani, hogy az adott VM hány processzorszálat használhat, a különböző ajánlások szerint vagy csak a fizikai magok számát szabad figyelembe venni (proxmox) vagy a processzorszálakat “túl is lehet foglalni”.

Ez utóbbi erősen függ a felhasználás módjától is. Ha párhuzamosan futnak processzorigényes alkalmazások, akkor a túlfoglalással csínján kell bánni, ha a proceszorigényes alkalmazások időben eltolva futnak, akkor a módszer bátrabban használható

Boot idő

A virtuális gép indulási ideje vendég operációs rendszer idejéből tevődik össze.

Biztonság

Üzemszerűen a virtuális gépek úgy tudnak egymással kommunikálni, mintha különálló számítógépek lennének

A VM-ből a vendég operációs rendszer és a virtualizációs rétegenen keresztül, tehát a Dockerben használtnál több rétegen keresztül lehet a host gépet támadni, ami jelentősen magasabb biztonságot jelent, mint a docker esetén

Erőforrás igény

Az erőforrásigénye jelentősen magasabb. mint a Docker konténereké, ezért azonban jelentősen nagyobb rugalmasságot biztosít.

Windows alatt egyaránt futtathatunk Windows és Linux konténereket. Linux alatt csak Linux konténereket futtathatunk

Címkék: