Docker oktatóanyag kezdőknek: alapok, Architecture, Containers

⚡ Okos összefoglaló

A Docker egy konténerizációs platform, amely alkalmazásokat és azok függőségeit hordozható, könnyű konténerekbe csomagolja. Ez az áttekintés bemutatja a Docker architektúráját, telepítését a következőre: Ubuntu, az alapvető parancsokat, és azt, hogy a konténerek hogyan különböznek a hagyományos virtuális gépektől a gyorsabb szoftverszállítás érdekében.

  • ???? Konténerezés: A Docker operációs rendszer szinten virtualizál, így a konténerek megosztják a gazdagép kernelt, és kevesebb erőforrást használnak, mint a virtuális gépek.
  • 🧱 Architectúra: A Docker motor (dockerd), a lemezképek, a beállításjegyzékek és a konténerek alkotják a Docker munkafolyamatok mögött álló kliens-szerver architektúrát.
  • 📦 Képek és tárolók: Egy kép egy írásvédett sablon, míg egy konténer egy futó másolat, és egyetlen kép több konténert is elindíthat.
  • 🗄️ Nyilvántartások: A Docker Hub nyilvános és privát képeket tárol, így több millió használatra kész képet biztosít a felhasználóknak.
  • 🇧🇷 Telepítés: On Ubuntu Hozzáadod a Docker APT repositoryt és a GPG kulcsot, majd telepíted a docker-ce csomagot az apt-get paranccsal.
  • ⌨️ Alapvető parancsok: Konténerek kezelése a Docker pull, run, start, stop, ps, stats és images parancsaival a parancssorból.

Docker oktatóanyag kezdőknek, architektúráról és telepítésről Ubuntués alapvető konténerparancsok

A Docker az egyik legnépszerűbb konténerizációs platform, amelyet a modern világban használnak. DevOps és felhőalapú munkafolyamatokat. Ez a Docker oktatóanyag kezdőknek elmagyarázza, mi a Docker, hogyan működik a Docker architektúra, hogyan kell telepíteni a Dockert Ubuntu, valamint a képek és tárolók kezeléséhez használt alapvető parancsok.

Mi a Docker?

Dokkmunkás egy virtualizációs szoftverfejlesztési platform, amely lehetővé teszi több operációs rendszer futtatását ugyanazon a gépen. Segít az infrastruktúra elkülönítésében az alkalmazásoktól, így gyorsan szállíthat szoftvereket. A virtuális gépek (VM-ek) létrehozására használt hipervizorokkal ellentétben a Docker rendszerszinten hajtja végre a virtualizációt Docker-konténerek nevű egységek használatával.

A Docker konténerek a gazdagép operációs rendszerén futnak, ahogy az az alábbi képen is látható. Ez javítja a hatékonyságot és a biztonságot is. Több konténert is futtathatsz ugyanazon az infrastruktúrán, mint virtuális gépet, mivel a konténerek kevesebb erőforrást használnak.

Virtualizáció a Docker vs Hypervisorban
Virtualizáció a Docker vs Hypervisorban

A virtuális gépekkel ellentétben, amelyek közvetlenül a gazdagép hardverével tudnak kommunikálni (például egy Ethernet adapterrel, amely több virtuális adaptert hoz létre), a Docker konténerek egy elszigetelt környezetben futnak a gazdagép operációs rendszerén. Még ha a gazdagép fut is Windows, futtathatod Linux képek a konténerek belsejében a segítségével Hyper-V, amely automatikusan létrehoz egy kis virtuális gépet az alapkép virtualizálásához.

Most, hogy tudjuk, mi a Docker, nézzük meg a fő okokat, amiért a csapatok ezt választják.

Miért használja a Dockert?

Íme a Docker használatának főbb okai:

  • A Docker egy virtualizációhoz használt szoftver, amely lehetővé teszi a többszörös operációs rendszer ugyanazon a gépen futni.
  • A Docker egy kliens-szerver alkalmazás, ami azt jelenti, hogy a kliensek kommunikálnak egy szerverrel.
  • A Docker képek a konténerek „forráskódjaként” működnek; ezeket használjuk a buildhez.
  • A Docker kétféle nyilvántartást támogat: nyilvánosat és privátot.
  • A konténerek a Docker szervezeti egységei. Egyszerűen fogalmazva, egy kép egy sablon, egy konténer pedig ennek a sablonnak egy másolata, így ugyanazon képből több konténert is futtathatsz.

Ezek az előnyök a Docker kialakításából adódnak. A következő szakasz lebontja a Docker architektúrát és annak főbb összetevőit.

Dokkmunkás Architectúra

Most, ebben a Docker konténer bemutatóban nézzük meg a Docker architektúra főbb összetevőit.

Dokkmunkás Archistruktúra komponensek: motor, képfájlok, regisztrátorok és konténerek

Dokkmunkás Architectúra

Docker motor

A Docker egy kliens-szerver alkalmazás, ami azt jelenti, hogy vannak klienseink, amelyek továbbítják a kéréseket egy szervernek. A Docker démon, a dockerd, a szervert képviselő Docker motor. A démon és a kliensek futhatnak ugyanazon a vagy egy távoli gépen, és egy parancssori kliens binárison és egy teljes... RESTful API ami a dockerd-del kommunikál.

Docker Images

A Docker-lemezképek a konténereink „forráskódjai”; ezeket használjuk konténerek építéséhez. A képekhez előre telepített szoftver tartozhat, ami felgyorsítja a telepítést. Hordozhatók, és használhatsz meglévő képeket, vagy létrehozhatsz sajátokat.

Docker nyilvántartások

A Docker a létrehozott rendszerképeket regiszterekben tárolja. Vannak nyilvános és privát regiszterek. A Docker rendelkezik egy nyilvános regiszterrel, amelynek neve Docker hub, ahol privát módon is tárolhatod a képeket. A Docker Hub több millió képpel rendelkezik, amelyeket azonnal elkezdhetsz használni.

Docker konténerek

A konténerek a Docker szervezeti egységei és egyik alapfogalma. Amikor létrehozunk és futtatunk egy rendszerképet, egy konténeren belül futtatjuk. A konténeranalógiát a benne futó szoftver hordozhatósága miatt használjuk: mozgathatjuk, „szállíthatjuk”, módosíthatjuk, kezelhetjük, létrehozhatjuk vagy megsemmisíthetjük, ahogyan a teherhajók kezelik a valódi konténereket.

Egyszerűen fogalmazva, a kép egy sablon, a tároló pedig ennek a sablonnak a másolata. Ugyanannak a képnek több tárolója (másolata) is lehet.

Ezen különböző komponensek közötti kölcsönhatás mutatja, hogyan működik együtt a Docker konténertechnológia. Az olyan parancsok, mint a docker pull és a docker run, amelyeket később tárgyalunk, lehetővé teszik ennek a munkafolyamatnak a kezelését.

Az architektúrát szem előtt tartva telepítsük a Dockert, hogy te magad is kipróbálhasd ezeket a komponenseket.

A Docker telepítése Linuxra/Ubuntu

Az alábbiakban lépésről lépésre bemutatjuk a Docker telepítési folyamatát Linuxon/Ubuntu:

Step 1) A Docker telepítéséhez szükséged van a Docker csapat DEB csomagjaira. Először is, néhány előfeltétel Ubuntu csomagok szükségesek. Használja az alábbi parancsot a telepítésükhöz.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*a „\” jel nem szükséges, az új sorban használatos, ha akarja, a parancsot a „\” használata nélkül is kiírhatja egy sorba.

Step 2) Add hozzá a hivatalos Docker GPG kulcsot az ujjlenyomattal. Használd az alábbi Docker parancsot a GPG kulcs megadásához.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Step 3) Ezután adja hozzá a Docker APT adattárat az alábbi parancs használatával.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Lehetséges, hogy a rendszer kérni fogja, hogy erősítse meg, hogy hozzá kívánja-e adni a tárhelyet, és hogy a GPG-kulcs automatikusan hozzáadódjon a gazdagéphez. Az lsb_release parancsnak ki kell töltenie a következőt: Ubuntu a gazdagép terjesztési verziója.

Step 4) A GPG kulcs hozzáadása után frissítse az APT forrásokat az alábbi Docker paranccsal.

$ sudo apt-get update

Most már telepítheti magát a Docker csomagot.

Step 5) Miután az APT forráskódok frissültek, kezdje el a Docker csomagok telepítését a következőre: Ubuntu az alábbi Docker parancs használatával.

$ sudo apt-get install docker-ce

A fenti parancs telepíti a Dockert és a többi szükséges csomagot. A Docker 1.8.0 előtt a csomag neve lxc-docker volt, a Docker 1.8 és 1.13 között pedig docker-engine.

JEGYZET: Docker a következőhöz: Windows megköveteli, Windows 10 Pro vagy Enterprise verzió 14393, vagy Windows Server 2016 RTM futtatásához.

A Docker használata az alapvető Docker-parancsok használatával

Így használhatod a Dockert néhány alapvető Docker-parancs segítségével.

A Docker telepítése után futtatandó legalapvetőbb parancs a docker info, ahogy korábban említettük.

$ sudo docker info

Az alábbihoz hasonló eredményt kell kapnia.

Docker használata alapvető Docker parancsokkal, Docker info kimenet megjelenítésével

Amint a fenti Docker példában látható, információkat láthatunk a Docker konténerekről: hány fut, szünetel vagy le van állítva, és hány kép lett letöltve. Most pedig nézzük az első képünket.

$ sudo docker pull alpine

Ezzel a paranccsal arra utasítjuk a Dockert, hogy töltse le az alpine rendszerképet a legújabb verziójú nyilvános rendszerleíró adatbázisból, amely alapértelmezés szerint be van állítva.

Az *alpine egy minimális Docker-kép, amely Alpine Linuxon alapul, teljes csomagindexszel és mindössze 5 MB méretű.

Ha a képet konténerként szeretnénk futtatni, akkor a következő parancsot használjuk.

$ sudo docker run -i -t alpine /bin/bash

A parancs futtatása közvetlenül az alpine terminálba küld minket. Az -i jelző nyitva tartja a konténer STDIN-jét, még akkor is, ha nem vagyunk hozzá csatlakoztatva; ez az állandó szabványos bemenet az interaktív shell szükséges mennyiségének a fele. A -t jelző a másik fele, és utasítja a Dockert, hogy rendeljen hozzá egy pszeudo-tty-t a konténerhez. Együttesen egy interaktív shell-t adnak nekünk az új konténerben. A konténerből egy egyszerű exit paranccsal léphetünk ki.

Most, ebben a Docker alapismeretek oktatóanyagban megpróbálhatunk futtatni egy Ubuntu kép.

$ sudo docker run -it ubuntu /bin/bash

Figyeljük meg, hogy a Docker lokálisan ellenőrzi a rendszerképet, és ha az nincs ott, akkor automatikusan a képkönyvtárból olvassa be. Ismét egy interaktív shell fut. A konténereket futtatás közben el is nevezhetjük.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Ezután ismét kilépünk. Egy korábban létrehozott konténert interaktív shell nélkül is futtathatunk.

$ sudo docker start container_name

És a konténert a docker stop container_name paranccsal állítjuk le.

$ sudo docker stop container_name

Ha az összes futó konténert látni szeretnénk, egyszerűen futtassuk a következőt.

$ docker ps

Minden konténer esetében a parancs végére hozzáadjuk a „-a” kapcsolót, például a docker ps -a parancshoz. Ez a parancs megjeleníti a konténer azonosítóját, az általa használt rendszerképet, a létrehozásának időpontját, a futási állapotát, a közzétett portokat és egy véletlenszerűen generált nevet a könnyebb kezelés érdekében.

Amikor konténereket futtatunk, gyakran szeretnénk tudni, hogy hány erőforrást használnak. Erre a célra a következő parancsot használhatjuk.

$ docker stats

Azt is megtekintheti, hogy mely képeket töltötte le helyben, valamint információkat róluk.

$ sudo docker images

A fenti Docker példában szereplő parancs minden Docker-képet egy címkével jelenít meg, amely mutatja a kép verzióját, egy egyedi képazonosítót, a létrehozási dátumot és a kép méretét.

Ahhoz, hogy megértsük, miért jelentenek ekkora előrelépést a konténerek, érdemes megvizsgálni, hogyan fejlődött a virtualizáció.

Mi az a virtualizáció?

Korábban egy szolgáltatás telepítése lassú és fáradságos volt. A fejlesztők kódot írtak, majd az operatív csapat telepítette azt bare metal gépeken, ahol figyelniük kellett a könyvtárverziókra, javításokra és nyelvi fordítókra, hogy a kód működjön. Ha hibák vagy hibák voltak, a folyamat elölről kezdődött: a fejlesztők kijavították a problémát, és az operatív csapat újratelepítette a rendszert.

A dolgok javultak a hipervizorok létrehozásával. A hipervizorok több futtatható virtuális gépek, vagy virtuális gépek ugyanazon a gépen, amelyek futhatnak vagy kikapcsolhatók. A virtuális gépek jelentősen csökkentették a kód telepítésére és a hibák javítására fordított várakozási időt, de az igazi változást a Docker konténerek jelentették.

A Docker népszerűségét a konténereket nagymértékben kezelő orkestrációs eszközök is elősegítik, mint például a KubernetesMielőtt továbblépnénk, íme egy gyors áttekintés a legfontosabb Docker parancsokról.

Fontos Docker-parancsok

Alább találhatók a fontos Docker-parancsok:

parancs Leírás
dokkoló információ Információs parancs
dokkoló húzza Kép letöltése
docker run -i -t image_name /bin/bash Futtassa a képet tárolóként
docker indítsa el a_container-ünket Indítsa el a tárolót
docker stop konténer_neve Állítsa le a tartályt
docker ps Az összes futó konténer listája
dokkoló statisztika Konténer információk
docker képek A letöltött képek listája
Docker tisztítás Öld meg az összes futó konténert.

Ezeket is olvasd el Docker állásinterjú kérdések és válaszok pályakezdőknek és tapasztalt szakembereknek egyaránt.

GYIK

Egy Docker konténer megosztja a gazda operációs rendszer kernelt, és csak az alkalmazást izolálja, így könnyű és másodpercek alatt elindul. Egy virtuális gép egy teljes vendég operációs rendszert tartalmaz, ami nagyobbá, lassabban indulóvá és erőforrás-igényesebbé teszi.

A Dockerfile egy egyszerű szöveges szkript, amely olyan utasításokat tartalmaz, mint a FROM, RUN, COPY és CMD. A Docker ezeket az utasításokat beolvassa a rendszerkép automatikus létrehozásához. Minden sor egy réteget ad hozzá, lehetővé téve ugyanazon környezet reprodukálását bármely gépen.

A Docker Compose egyetlen YAML fájl használatával definiál és futtat többkonténeres alkalmazásokat. Minden egyes szolgáltatást, hálózatot és kötetet egyszer leírsz, majd mindent a docker compose up paranccsal indítasz el. Ideális a helyi fejlesztéshez és a csatlakoztatott szolgáltatások teszteléséhez.

A Docker egyedi konténereket épít és futtat, miközben Kubernetes számos konténert irányít egy klaszteren belül. A Kubernetes automatikus skálázást, önjavítást és terheléselosztást biztosít. A gyakorlatban a Docker csomagolja az alkalmazást, és a Kubernetes kezeli azt éles környezetben.

A Docker Engine ingyenes és nyílt forráskódú az Apache 2.0 licenc alatt. A Docker Desktop ingyenes személyes használatra, oktatásra és kisvállalkozások számára, de a nagyobb vállalatoknak fizetős előfizetésre van szükségük. A Docker Hub ingyenes és fizetős képtárhely-csomagokat is kínál.

A Docker natívan fut Linuxon, és támogatott a következő platformokon: Windows és a macOS a Docker Desktopon keresztül. Bekapcsolva Windows Macen és a Docker egy könnyűsúlyú virtuális gépet használ a konténerek által igényelt Linux kernel futtatásához. A legtöbb konténerkép Linux alapú.

Az AI-asszisztensek egyszerű nyelvi promptokból generálnak Dockerfájlokat, Docker-compose fájlokat és CLI-parancsokat. Emellett beolvassák a build naplókat és a konténerhibákat, elmagyarázzák az okot, és javításokat javasolnak. A futtatás előtt mindig ellenőrizzék a generált konfigurációt a helyes képcímkék, elérési utak és biztonság szempontjából.

Igen. GitHub másodpilóta A ChatGPT pedig Dockerfájlokat és Compose fájlokat tud létrehozni egy rövid megjegyzésből vagy leírásból. Felgyorsítják a sablonos munkákat, de ellenőrizni kell az alapképeket, verziókat és a legjobb gyakorlatokat, mert a létrehozott kódrészletek elavult alapértelmezett értékeket használhatnak.

Foglald össze ezt a bejegyzést a következőképpen: