Docker Architecture és alkotóelemei kezdőknek

Ismerkedjünk meg a Docker architektúrával és alapvető összetevőivel.

Feltételezem, hogy alapvető ismeretekkel rendelkezik a Dockerről. Ha nem, akkor hivatkozhat erre az előző cikkre.

Úgy gondolom, hogy megértette a Docker fontosságát a DevOps-ban. Most e fantasztikus eszköz mögött egy csodálatos, jól átgondolt architektúrának kell lennie. nem igaz?

Mielőtt azonban erről beszélnék, hadd mutassam be a korábbi és a jelenlegi virtualizációs rendszereket.

Hagyományos vs. új generációs virtualizáció

Korábban virtuális gépeket hoztunk létre, és minden virtuális gépnek volt egy operációs rendszere, amely sok helyet foglalt és nehézzé tette.

Most a docker-tároló esetében egyetlen operációs rendszerrel rendelkezik, és az erőforrások meg vannak osztva a tárolók között. Ezért könnyű és pillanatok alatt elindul.

Docker építészet

Az alábbiakban egy Docker architektúra egyszerű diagramja látható.

Hadd magyarázzam el a docker architektúra összetevőit.

Docker motor

Ez az egész Docker rendszer központi része. A Docker Engine egy olyan alkalmazás, amely a kliens-szerver architektúrát követi. Telepítve van a gazdagépen. A Docker Engine három összetevőből áll:

  • Szerver: Ez a dockerd nevű docker démon. Docker képeket hozhat létre és kezelhet. Konténerek, hálózatok stb.
  • Rest API: A docker démon utasítására szolgál, hogy mit tegyen.
  • Command Line Interface (CLI): Ez egy kliens, amely a docker parancsok bevitelére szolgál.
  Milyen gyors a Kinsta WordPress Hosting (teszt eredményei)?

Docker kliens

A Docker-felhasználók kliensen keresztül léphetnek kapcsolatba a Dockerrel. Amikor bármely docker parancs lefut, az ügyfél elküldi azokat a dockerd démonnak, amely végrehajtja azokat. A Docker API-t a Docker parancsok használják. A Docker kliens egynél több démonnal tud kommunikálni.

Docker nyilvántartások

Ez az a hely, ahol a Docker-képeket tárolják. Lehet nyilvános docker-nyilvántartás vagy privát docker-nyilvántartás. A Docker Hub a docker képek alapértelmezett helye, üzleteinek nyilvános nyilvántartása. Saját nyilvántartást is létrehozhat és futtathat.

A Docker pull vagy Docker Run parancsok végrehajtásakor a szükséges docker lemezkép lekérésre kerül a konfigurált beállításjegyzékből. Amikor végrehajtja a Docker push parancsot, a docker lemezkép a konfigurált beállításjegyzékben tárolódik.

Docker objektumok

Amikor a Dockerrel dolgozik, képeket, tárolókat, köteteket, hálózatokat használ; ezek mind Docker objektumok.

Képek

A Docker-képek írásvédett sablonok, amelyek utasításokat tartalmaznak egy docker-tároló létrehozására. A Docker kép lekérhető egy Docker hubról, és úgy használható, ahogy van, vagy hozzáadhat további utasításokat az alapképhez, és létrehozhat egy új és módosított docker képet. Saját docker-képeket is létrehozhat egy dockerfájl használatával. Hozzon létre egy dockerfájlt az összes utasítással a tároló létrehozásához, és futtassa azt; létrehozza az egyéni docker-képet.

  Hogyan lehet bejelentkezni a Depopba

A Docker-képnek van egy csak olvasható alaprétege, és a felső réteg írható. Amikor szerkeszt egy dockerfájlt, és újraépíti, csak a módosított rész kerül újraépítésre a felső rétegben.

Konténerek

A docker-lemezkép futtatása után létrehoz egy docker-tárolót. Az összes alkalmazás és környezetük ebben a tárolóban fut. A Docker API vagy CLI segítségével elindíthat, leállíthat és törölhet egy Docker-tárolót.

Az alábbiakban egy mintaparancs látható egy ubuntu docker-tároló futtatásához:

docker run -i -t ubuntu /bin/bash

Kötetek

A Docker által generált és a Docker-tárolók által használt, állandó adatokat a kötetek tárolják. Ezeket teljes mértékben a docker kezeli a docker CLI-n vagy a Docker API-n keresztül. A kötetek Windows és Linux konténereken is működnek. Ahelyett, hogy az adatok egy tároló írható rétegében maradnának, mindig jó lehetőség köteteket használni hozzá. A kötet tartalma a tároló életciklusán kívül létezik, így a térfogat használata nem növeli a tároló méretét.

A -v vagy a -mount kapcsolóval elindíthat egy kötetet tartalmazó tárolót. Ebben a példaparancsban a geekvolume kötetet etoppc.com tárolóval használja.

docker run -d --name etoppc.com  -v geekvolume:/app nginx:latest

Hálózatok

A Docker hálózat egy olyan átjáró, amelyen keresztül az összes elszigetelt tároló kommunikál. Főleg öt hálózati illesztőprogram található a dockerben:

  Mi a Google Meet időkorlátja egy értekezletre
  • Bridge: Ez a tároló alapértelmezett hálózati illesztőprogramja. Ezt a hálózatot akkor használja, ha az alkalmazás önálló tárolókon fut, azaz több konténeren kommunikál ugyanazzal a docker gazdagéppel.
  • Gazda: Ez az illesztőprogram eltávolítja a hálózati elszigetelést a docker-tárolók és a docker-gazda között. Akkor használatos, ha nincs szükség hálózati leválasztásra a gazdagép és a tároló között.
  • Átfedés: Ez a hálózat lehetővé teszi, hogy a swarm szolgáltatások kommunikáljanak egymással. Akkor használatos, ha a tárolók különböző Docker-állomásokon futnak, vagy ha a swarm-szolgáltatásokat több alkalmazás alkotja.
  • Nincs: Ez az illesztőprogram letiltja az összes hálózati kapcsolatot.
  • macvlan: Ez az illesztőprogram Mac-címet rendel a tárolókhoz, hogy fizikai eszközöknek tűnjenek. A forgalom a konténerek között a Mac-címeiken keresztül történik. Ezt a hálózatot akkor használja, ha azt szeretné, hogy a tárolók fizikai eszköznek tűnjenek, például egy virtuális gép-beállítás áttelepítése közben.
  • Következtetés

    Remélem, ez ad képet a Docker architektúráról és annak alapvető összetevőiről. Navigáljon a Docker körül, ha többet szeretne megtudni, és ha szeretne gyakorlati képzést kapni, nézze meg ezt Docker Mastery tanfolyam.

    Élvezettel olvastad a cikket? Mit szólnál a világgal való megosztáshoz?