# 📦 Konténerek ## Áttekintés A konténerizáció egy olyan virtualizációs forma, amely lehetővé teszi, hogy az alkalmazások izoláltan fussanak, ugyanazon az operációs rendszeren. A konténer egy szabványos szoftvercsomag, amely tartalmazza mindazt, amire az alkalmazás futtatásához szükség van: kódot, futtatókörnyezetet, rendszerszerszámokat, rendszertárakat és beállításokat. ### A konténerek előnyei: * **Hordozhatóság**: A konténerek könnyen mozgathatók a különböző környezetek között (fejlesztői laptop, tesztkörnyezet, éles környezet). * **Konzisztencia**: A konténerizált alkalmazások mindig ugyanúgy futnak, függetlenül a mögöttes infrastruktúrától. * **Hatékonyság**: A konténerek kevesebb erőforrást igényelnek, mint a virtuális gépek, mivel nem tartalmaznak teljes operációs rendszert. * **Skálázhatóság**: A konténerek gyorsan és egyszerűen skálázhatók, ami ideális a felhőalapú alkalmazásokhoz. * **Gyorsaság**: A konténerek gyorsabban indulnak el, mint a virtuális gépek, ami csökkenti az alkalmazások indítási idejét. ### A konténerek működése: A konténerek az operációs rendszer kerneljét használják, de izolálják az alkalmazásokat a többi konténertől és a gazdagéptől. Ezt a névterek (namespaces) és a vezérlőcsoportok (cgroups) technológiák segítségével érik el. * **Névterek**: A névterek izolálják az alkalmazásokat a rendszervizsgálatok, a hálózat, a fájlrendszer és más erőforrások tekintetében. * **Vezérlőcsoportok**: A vezérlőcsoportok korlátozzák az alkalmazások által használt erőforrásokat, például a CPU-t, a memóriát és a lemezt. ### Legismertebb konténer technológiák: * **Docker:** A legnépszerűbb konténer platform, amely lehetővé teszi a konténerek létrehozását, futtatását és kezelését. * **Kubernetes:** Egy nyílt forráskódú konténer orchestrációs rendszer, amely automatizálja a konténerizált alkalmazások telepítését, skálázását és kezelését. ### Gyakorlati alkalmazások: * Webalkalmazások fejlesztése és üzemeltetése * Mikroszolgáltatás-architektúrák megvalósítása * Folyamatos integráció és folyamatos szállítás (CI/CD) * Adattudományi és gépi tanulási alkalmazások futtatása * A konténerek a modern szoftverfejlesztés és üzemeltetés alapvető eszközei, amelyek jelentősen javítják az alkalmazások hordozhatóságát, hatékonyságát és skálázhatóságát. ## 🐳 Docker A Docker főbb összetevői: * ** Docker Image:** Egy olvasható sablon, amely tartalmazza az alkalmazás és annak függőségeinek leírását. * **Docker Container:** A Docker image futó példánya. * **Docker Registry:** A Docker képek tárolására és megosztására szolgáló tároló. A Docker Hub a legnépszerűbb nyilvános registry. * **Docker Daemon:** A háttérben futó folyamat, amely kezeli a Docker konténereket és képeket. * **Docker CLI:** A parancssori felület, amely lehetővé teszi a Dockerrel való interakciót. Bővebben: [[virtualizacio:kontenerek:docker|Docker Linuxon]] ## ☸ Kubernetes A **Kubernetes** nem egy egyszerű konténerfuttató, hanem egy **konténer-vezénylési (orchestration)** platform. Arra való, hogy nagyszámú konténert automatikusan telepítsen, skálázzon és menedzseljen elosztott rendszereken (több gépen). Automatizálja a telepítést, a frissítéseket (gördülő frissítés), a terheléselosztást, az öngyógyítást (ha egy konténer leáll, újat indít). Iparági szabvány a konténerizált alkalmazások nagyüzemi futtatására.