A konténer „forradalmi” alkalmazásai sokkal többet nőttek, mint csupán adatbázis és kezelőfelület. Az alkalmazások különböző mikroszolgáltatásokra vannak felosztva, és általában REST API -n keresztül kommunikálnak egymással (jellemzően JSON formátumú hasznos adatok HTTP -n keresztül). A Docker konténerek ideálisak az ilyen típusú építészethez. Csomagolhatja a front mikroszolgáltatást egy Docker -tárolóba, az adatbázis átmegy egy másikba, és így tovább. Minden szolgáltatás egy előre meghatározott REST API -n keresztül beszél a másikkal, ahelyett, hogy egyetlen szoftverként írt monolit lenne.
Ha új funkciót vagy szolgáltatást, például elemzőmotort kell megvalósítania, egyszerűen írhat ehhez egy új mikroszolgáltatást, és az az adatokat a webes alkalmazás különböző mikroszolgáltatásai által kitett REST API -n keresztül használja fel. És ahogy a funkcionalitás idővel növekszik, ez a mikroszolgáltatások listája is együtt fog növekedni.
Nem szeretné telepíteni az egyes tárolókat, konfigurálni, majd beállítani minden mást, hogy beszéljen vele. Ez még három konténerrel is unalmas lesz. A Docker-Compose lehetővé teszi több tároló telepítésének automatizálását.
A Docker-Compose az egyik legegyszerűbb eszköz, amely segít a mikroszolgáltatások absztrakt elképzelésének átalakításában a Docker tároló funkcionális készletévé.
Elosztott rendszerek
Most, hogy több tárolóra osztottuk fel a webalkalmazást, nincs sok értelme egyetlen kiszolgálón tartani (még rosszabb esetben egyetlen virtuális gépen!), Ahol olyan szolgáltatások jönnek szóba, mint a Docker Swarm és a Kubernetes.
A Docker Swarm lehetővé teszi az alkalmazás több másolatának futtatását több szerveren. Ha mikroszolgáltatása úgy van megírva, hogy „vízszintesen” skálázható legyen, akkor a Docker Swarm segítségével telepítheti webes alkalmazását több adatközponton és több régión keresztül. Ez rugalmasságot kínál egy vagy több adatközpont vagy hálózati kapcsolat meghibásodásával szemben. Ez általában a Docker egy alparancsával, azaz a Docker Stack használatával történik.
Az Docker verem alparancs sokkal jobban viselkedik, mint a Docker-Compose parancs, és ez félreértésekhez vezethet, ha valaki bármelyik technológiát használja.
Zavar forrása
Használat és munkafolyamat tekintetében mindkét technológia nagyon hasonlóan működik, és ez zavart okoz. Az alkalmazás telepítésének módja a Docker Swarm vagy a Docker-Compose használatával nagyon hasonló. Az alkalmazást egy YAML fájlban határozza meg, ez a fájl tartalmazza a kép nevét, az egyes képek konfigurációját, valamint azt a skálát (replikák száma), amelyet minden mikroszolgáltatásnak teljesítenie kell a telepítés során.
A különbség leginkább a háttérben rejlik, ahol a docker-compose tárolót telepít egyetlen Docker-gazdagépre, a Docker Swarm pedig több csomóponton keresztül telepíti. Lazán szólva még mindig képes a legtöbb olyan dologra, amit a docker-compose képes, de skálázhatja több Docker-gazdagépen.
Hasonlóságok
Mind a Docker Swarm, mind a Docker-Compose a következő hasonlóságokkal rendelkezik:
- Mindkettő YAML formátumú definíciókat vesz fel az alkalmazáskötegből.
- Mindkettő több konténeres alkalmazások kezelésére szolgál (mikroszolgáltatások)
- Mindkettő rendelkezik egy skála paraméterrel, amely lehetővé teszi, hogy ugyanazon kép több tárolóját futtassa, lehetővé téve a mikroszolgáltatás vízszintes méretezését.
- Mindkettőt ugyanaz a cég tartja fenn, azaz a Docker, Inc.
Különbségek
Néhány különbség a Docker Swarm és a Docker-Compose között:
- A Docker Swarm a webes alkalmazás méretezésére szolgál egy vagy több szerveren. Ahol a Docker-compose egyszerűen futtatja webes alkalmazását egyetlen Docker-gazdagépen.
- Webes alkalmazás méretezése A Docker Swarm komoly magas rendelkezésre állást és hibatűrést kínál. A webalkalmazás méretezése a Docker-Compose segítségével egyetlen gazdagépen csak tesztelésre és fejlesztésre hasznos.
- A Docker Swarm és a kapcsolódó alparancsok, mint a Docker Swarm és a Docker Stack, magukba a Docker CLI -be vannak beépítve. Mindegyik része a Docker binárisnak, amelyet a terminálon keresztül hív. A Docker-Compose önmagában önálló bináris.
A Docker-Compose használati eset
Amint fentebb leírtuk, mindkettő teljesen más eszköz, és mindegyik teljesen más problémát old meg, így nem mintha az egyik alternatíva lenne a másik számára. Azonban, hogy az újonnan érkezők megértsék, miről beszélek, itt van a Docker Compose használati példája.
Tegyük fel, hogy önállóan szeretné üzemeltetni a WordPress blogot egyetlen szerveren. Ha nem manuálisan szeretné beállítani vagy karbantartani, akkor a Docker és a Docker-compose telepítése a VPS-re, hozzon létre egy egyszerű YAML-fájlt, amely meghatározza a WordPress verem összes aspektusát, például alább, :
Megjegyzés: Ha az alábbiakat használja egy WordPress webhely telepítéséhez, kérjük, módosítsa az összes jelszót valami biztonságosra. Még jobb, ha a Docker Secrets használatával érzékeny adatokat, például jelszavakat tárol, ahelyett, hogy egyszerű szöveges fájlban tárolná őket.
változat:„3”szolgáltatások:
db:
kép: mysql:5.7
kötetek:
- db_data:/ahol/lib/mysql
újraindítás: mindig
környezet:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
attól függ:
- db
kép: wordpress: legújabb
portok:
-'8000: 80'
újraindítás: mindig
környezet:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpressPassword
WORDPRESS_DB_NAME: wordpress
kötetek:
db_data:{}
A fájl létrehozása és a Docker és a Docker-compose telepítése után mindössze annyit kell tennie, hogy futtatja:
$dokkoló-összeáll-dÉs webhelye működőképes lesz. Ha van frissítés, akkor futtassa:
$dokkoló-komponál leEzután dobja el a régi Docker -képeket, és futtassa a docker -compose up -d parancsot, és az új képek automatikusan be lesznek húzva. Mivel a tartós adatokat egy Docker -kötetben tárolja, webhelye tartalma nem fog elveszni.
Mikor kell használni a Docker Swarm -ot?
Míg a Docker-compose inkább automatizálási eszköz, a Docker Swarm az igényesebb alkalmazásokhoz készült. Több száz vagy ezer felhasználót vagy párhuzamosan méretezendő munkaterhelést tartalmazó webalkalmazások. A nagy felhasználói bázissal és szigorú SLA -követelményekkel rendelkező vállalatok olyan elosztott rendszert szeretnének használni, mint a Docker Swarm. Ha az alkalmazás több kiszolgálón és több adatközponton is fut, akkor az érintett DC vagy hálózati kapcsolat miatti leállás valószínűsége jelentősen csökken.
Ennek ellenére habozom ajánlani a Docker Swarm -ot gyártási célú felhasználásra, mivel az olyan versenytárs technológiák, mint a Kubernetes, vitathatatlanul alkalmasabbak erre a feladatra. A Kubernetes -t sok felhőszolgáltató natívan támogatja, és nagyon jól működik a Docker Containers -el, így nem is kell újratelepítenie az alkalmazást a Kubernetes előnyeinek kihasználásához.
Következtetés
Remélem, hogy ez a Docker -en és annak műholdprojektjein való tájékozódás informatív volt, és jobban felkészült a dokkoló ökoszisztémájára.