Csavargó

Docker Vs Csavargó

Docker Vs Csavargó

A fejlesztési és üzemeltetési csoportok a kezdetektől fogva foglalkoznak a szoftveres környezetek összetettségével. Gyakori probléma, amikor az egyik környezetben működő kód nem működik a másikban.

A dokkoló és a csavargó egyaránt segít kiszámítható és megismételhető fejlesztői környezetek létrehozásában. A dokkoló azonban konténertechnológiát, míg a csavargó virtuális gépeket használ e cél elérése érdekében. A Docker és a Vagrant erősségeinek és gyengeségeinek megértése segít a fejlesztőknek összekeverni ezeket az eszközöket a kívánt eredmények elérése érdekében.

Kezdjük először az alapul szolgáló technológiákkal.

Virtuális gép

A virtuális gép (VM) fizikai számítógépet utánoz. Saját teljes operációs rendszerrel és erőforrás-elosztással rendelkezik. A gazdagép biztosítja a szükséges fizikai erőforrásokat, de a virtualizált környezet független gépként működik, saját BIOS-szal, CPU-val, tárolóval és hálózati adapterekkel.

Annak ellenére, hogy a VMware manapság a modern VM technológiáról a leghíresebb, a virtuális gép ötlete már régóta létezik.

1965-ben az IBM Yorktown Research Center-nek szüksége volt arra, hogy felmérje a különböző informatikai ötletek hatékonyságát. A kutatócsoport váltani szeretett volna a funkciók között és megmérni az eredményeket. A csapat kidolgozott egy sémát, amely egyetlen gépet osztott fel kisebb partíciókra. A kisebb partíciók kezelnék a saját erőforrásaikat. Kis virtuális gépek lennének.

A VM ötlete sikeres volt. Az IBM megkezdte az operációs rendszerek gyártását virtuális gépek alapján. Az IBM System 370 (S / 370) és az IBM System 390 (S / 390), mind az IBM VM / ESA alapú rendszerek, népszerűvé vált a vállalkozások és az egyetemek körében, mert lehetővé tették az intézmények számára, hogy hagyják felhasználóikat megosztani számítási erőforrásaikban anélkül, hogy befolyásolnák egymás környezetét. Az ötlet segített a Unix operációs rendszer és a Java programozási nyelv létrehozásában is.

A modern virtuális gépek hipervizorokon futnak. A hypervisors a virtuális gépek létrehozásáért és végrehajtásáért felelős szoftver, firmware vagy hardver. Nagyon sok hipervizor elérhető a piacon. A KVM, a Red Hat Enterprise Virtualization (RHEV), a XenServer, a Microsoft Hyper-V és a VMware vSphere / ESXi a kiemelkedő szereplők.

Ma a virtuális gépek ösztönözték a felhőalapú számítástechnika növekedését. Az Amazon AWS, a Microsoft Azure, a Google Cloud, a Digital Ocean és más felhőcégek nagyban függnek a virtualizációs technológiától.

Konténerek

A konténerek virtualizációt hoznak létre az operációs rendszer szintjén. Futtatható szoftvercsomagként működnek, amely izolálja az alkalmazásokat a környező környezettől. A csomag belsejében egy tároló rendelkezik a szükséges tulajdonságokkal, például kóddal, futási idővel, rendszerkönyvtárakkal és eszközökkel, hogy az alkalmazást el lehessen különíteni a külső befolyástól. A gazdagép operációs rendszerén fut. A konténerek lehetőség szerint megosztják a könyvtárakat és a bináris fájlokat, és csak a feltétlenül szükséges erőforrásokat különítik el.

1979-ben a „chroot” rendszerhívások elkülöníthetik a folyamatokat a Unix számára. Ez volt a konténer ötlet első magja. A korai konténertechnológia a FreeBSD Jails alkalmazásával indult 2000-ben. Egy évvel később a Linux VServer lehetővé tette több Linux gép futtatását egyetlen állomáson. 2004-ben az Oracle Solaris Zones hasonló funkciókat nyújtott, mint a FreeBSD Jails. 2006-2007-ben a Google kifejlesztette a Process Containert, majd beolvasztotta a Linux kernelbe. A Linux Containers (LXC) 2008-ban jött létre, hogy kihasználja a Linux csoportjainak és névtereinek előnyeit. 2013-ban az LXC ötletek ötvözésével jött létre a Docker. Ezenkívül eszközöket adott hozzá a konténerek képeinek egyszerű elkészítéséhez és visszakereséséhez.

Dokkmunkás

A Docker egy LXC alapú nyílt forráskódú konténertechnológia. Népszerű, mert megkönnyíti az alkalmazások önálló környezetben történő létrehozását, futtatását és telepítését. A Docker nem hoz létre olyan operációs rendszert, mint egy virtuális gép. Ehelyett a gazdagép operációs rendszerének kernelét használja, és csak az alkalmazáshoz és a szükséges könyvtárakhoz hoz létre virtualizációt. Ez a megközelítés sokkal könnyebbé teszi, mint a virtuális gépek.

A Docker konténerek a Docker Images alkalmazásból készülnek. A Docker Images gépek pillanatképének tekinthető. A felhasználók egyszerűen elindíthatnak egy tárolót egy képből. A képek rétegként jönnek létre. Tegyük fel, hogy egy fejlesztőcsapatnak szüksége van egy Apache és Python tárolóra a Linux bizonyos verzióira. A fejlesztő letölthet egy Linux képet a Docker Hubról, elindíthat egy tárolót, telepítheti az Apache és a Python programot, létrehozhat egy új képet a tárolóból, és megoszthatja azt a képet. A csapat többi tagjának nem kell ugyanazt a telepítést végrehajtania. Segít fenntartani a mindenki számára állandó környezetet.

A Docker szkripteket és több tárolós alkalmazásokat is támogat. A felhasználók szöveges Dockerfile segítségével meghatározhatják a követelményeket, majd a Docker Compose segítségével tárolókat készíthetnek. Az Apache / Python / Linux szerver létrehozásának fenti példája szintén elérhető ezzel a folyamattal. A Docker Compose használatával a csapatoknak csak a Dockerfile fájlt kell megosztaniuk ugyanazon környezet létrehozása érdekében.

A Docker speciálisabb eszközökkel rendelkezik az összetett feladatokhoz. A Docker Swarm segíti a nagyméretű dokkoló-telepítések összehangolását.

Csavargó

A Vagrant egy nyílt forráskódú eszköz, amely segít virtuális gépek létrehozásában és karbantartásában. Működik a VirtualBox, a VMWare, az AWS és más szolgáltatókkal.

A Vagrant leegyszerűsíti a virtuális gépek kezelését. A Vagrantfile használatával a fejlesztők meghatározhatják a virtuális gép tulajdonságait, például az operációs rendszert, a szoftver telepítéseket és egyebeket. A szöveges Vagrantfile verzióvezérléssel osztható meg, és a szükséges gép elindítható egy egyszerű paranccsal, mint például a „vagrant up”. A felhasználók ezután bejelentkezhetnek a gépbe, mint egy fizikai szerver.

Mikor kell használni a Dockert vagy a Vagrant

A Docker vagy a Vagrant használata gyakran a konténerek vagy virtuális gépek szükségességére vezethető vissza. Íme néhány hasonlóság és különbség a Docker és a Vagrant között a használat szempontjából:

Hasonlóságok

Mind a Docker, mind a Vagrant könnyen konfigurálható környezetekkel rendelkezik, amelyek parancsfájlok segítségével vezérelhetők. Felhőbarátak is.

Különbségek

A Vagrant virtuális gép biztosítja a kernel alapú biztonsági szétválasztást. Az elkülönítés miatt a virtuális gépek kevésbé kockázatosak, mint a konténerek. De a Docker konténerek nagyon könnyűek. Kevesebb erőforrást használnak és gyors a kivitelezésük. Tehát sokkal több tárolóval rendelkezhet egyetlen gazdagépen, mint virtuális gépeken. A konténerek indítása és leállítása szinte azonnal zajlik a virtuális gépekhez képest. A virtuális gépek a teljes BIOS és az operációs rendszer indítási ciklusán mennek keresztül.

A virtuális gép biztonsági elkülönítése a virtuális gép hibáját önállóbbá teszi. Másrészt a konténerek megosztják az erőforrásokat, és lépcsőzetes összeomlási hatást fejthetnek ki. A konténer biztonsági fenyegetései elérhetik a gazdagép operációs rendszer kerneljét is.

A kivitelezés sebessége és a konténerek könnyű talajnyoma azonban nagyon vonzóvá teszi a Dockert a fejlődés szempontjából. Mikroszolgáltatási architektúrával a konténerek jól teljesíthetnek, mert a kockázati tényezőket a mikroszolgáltatások alkalmazásával enyhítik. Továbbá haladnak a Docker biztonságosabbá tétele érdekében minden nap.

Következtetés

A Docker és a Vagrant egyaránt hasznos technológiák, amelyek segíthetik a fejlesztőket a termelékenység javításában. Ha az alkalmazások biztonsága aggodalomra ad okot, akkor a Vagrant és a virtuális gépek használata jó ötlet lehet. A gyors fejlődés és megosztás érdekében a Docker előnyt nyújt. A legtöbb csapat mindkettőt használja a zökkenőmentes működéshez.

Referenciák:

A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...
Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...
HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...