Blog

Konténerizáció a gyakorlatban: Mi az a Docker és hogyan segíti a szoftverfejlesztést?

Konténerizáció a gyakorlatban Mi az a Docker és hogyan segíti a szoftverfejlesztést

Konténerizáció a gyakorlatban: Mi az a Docker és hogyan segíti a szoftverfejlesztést?

A konténerizáció egy modern technológia, amely az alkalmazások futtatását és telepítését új megvilágításba helyezi.

Lényege, hogy az alkalmazásokat egy teljesen izolált környezetben, úgynevezett konténerekben futtatja. 

Ez lehetővé teszi, hogy az alkalmazás minden szükséges függőségével együtt egy csomagban legyen, függetlenül attól, hogy milyen operációs rendszeren vagy infrastruktúrán fut. 

Ez a megoldás minimalizálja a fejlesztési környezet és a gyártási környezet közötti különbségekből adódó problémákat, mivel a konténerek biztosítják, hogy az alkalmazás ugyanabban a környezetben működjön bárhol, ahol futtatják.

Az izolált környezet előnyei között szerepel az, hogy a konténerek különálló process-ként futnak, így nem befolyásolják közvetlenül egymást. Ez különösen fontos akkor, ha egy rendszer több alkalmazást vagy szolgáltatást futtat egyidejűleg, mivel ezek a konténerek különállóak maradnak, mégis könnyen együtt tudnak működni.

 

Miért lett népszerű a konténerizáció?

A konténerizáció gyors térnyerésének több fontos oka van, amelyek közül kiemelkednek az alábbiak:

#1: Platformfüggetlenség

A konténerek egyik legnagyobb előnye, hogy az alkalmazások platformfüggetlenek. Ez azt jelenti, hogy ugyanaz a konténer futtatható helyi fejlesztői gépen, szerveren, vagy akár a felhőben is, függetlenül attól, hogy milyen operációs rendszer vagy infrastruktúra van a háttérben. Mivel a konténerek minden szükséges függőséget magukban hordoznak, biztosítják, hogy az alkalmazás mindig ugyanabban a környezetben fusson, függetlenül attól, hogy hol telepítik. Ez a platformfüggetlenség jelentősen csökkenti azokat a hibákat, amelyek a fejlesztési és éles környezetek közötti különbségekből adódhatnak.

#2: Skálázhatóság 

A konténerizált alkalmazások könnyen skálázhatók vízszintesen, ami azt jelenti, hogy egyszerűen hozzáadható vagy eltávolítható további konténerek a terhelés függvényében. Ha egy alkalmazás nagyobb terhelést kap, gyorsan elindítható több példány, így a rendszer rugalmasan reagálhat a változó igényekre. Ezt különösen nagy forgalmú webes alkalmazások és mikroservices alapú rendszerek esetében hasznosítják, ahol fontos a skálázhatóság és a megbízhatóság.

konténerizáció előnye - skálázható alkalmazásfejleszt

#3: Gyors telepítés és fejlesztési folyamatok 

A konténerek gyorsan elindíthatók és leállíthatók, ami jelentősen felgyorsítja a fejlesztési és tesztelési folyamatokat. A fejlesztők könnyedén létrehozhatnak tesztkörnyezeteket, telepíthetnek új alkalmazásverziókat, és szükség esetén gyorsan visszavonhatják a változtatásokat. Ez a rugalmasság lehetővé teszi, hogy a fejlesztési csapatok gyorsabban reagáljanak az új igényekre vagy hibajavításokra, és lerövidítsék a fejlesztési ciklusokat. A konténerek emellett támogatják a folyamatos integrációt és szállítást (CI/CD), ami kulcsfontosságú a modern szoftverfejlesztésben.

#4: Erőforrás-hatékonyság:

A konténerek osztoznak a gazdagép erőforrásain, így sokkal hatékonyabban használják azokat, mint a virtuális gépek, amelyek minden esetben egy teljes operációs rendszert futtatnak. A konténerek mindössze annyi erőforrást vesznek igénybe, amennyire az alkalmazásnak szüksége van, és az erőforrás-megosztás révén több konténer futhat egy gépen anélkül, hogy jelentős teljesítménycsökkenést eredményezne. Ez a hatékonyság különösen fontos, ha nagy számú konténer fut egyidejűleg, mivel így csökkenthető az infrastruktúra költsége, és jobban kihasználhatók a rendelkezésre álló erőforrások.

Ezek a tényezők összességében hozzájárulnak ahhoz, hogy a konténerizáció mára az egyik legnépszerűbb és legszélesebb körben alkalmazott technológia legyen a szoftverfejlesztés és üzemeltetés területén.

Most, hogy értjük miért vált nélkülözhetetlenné a modern fejlesztési környezetekben a konténerizáció, érdemes közelebbről is megvizsgálni a legnépszerűbb konténerizációs platformot: a Docker-t.

A Docker kulcsfontosságú szerepet játszik abban, hogy a konténerizáció széles körben elérhető és használható legyen, nemcsak nagyvállalatok, hanem kisebb fejlesztői csapatok számára is.

 

Mi az a Docker és mire jó?

A Docker egy nyílt forráskódú platform, amely megkönnyíti az alkalmazások konténerizálását, futtatását és kezelését.

A Docker segítségével a fejlesztők elkülöníthetik alkalmazásaikat és azok futtatási környezetét a gazdarendszertől, ami lehetővé teszi, hogy az alkalmazások bármilyen környezetben megbízhatóan működjenek. Ez különösen hasznos, mivel a fejlesztők gyakran találkoznak azzal a kihívással, hogy az alkalmazások különböző környezetekben (fejlesztési, tesztelési, éles) nem mindig futnak egyformán.

Mi az a Docker és mire jó

 

Mi az a Docker és mire jó

A Docker konténerek hordozhatóak és platformfüggetlenek, így ugyanaz az alkalmazás futtatható helyi gépen, szerveren vagy akár a felhőben is. Ez a hordozhatóság tette a Dockert az egyik legnépszerűbb és legelterjedtebb konténerizációs eszközzé, különösen a DevOps folyamatokban, ahol a gyors telepítési ciklusok és az automatizált folyamatok kulcsfontosságúak.

Mára olyan tech óriások alkalmazzák, mint a Facebook, Netflix, Spotify, PayPal csak, hogy párat megnevezzünk.

Nézzünk is meg párat, hogyan használják a Docker-t a gyakorlatban ezek a világcégek, és hogyan segítette a fejlesztési és üzemeltetési folyamataik javítását.

 

Alkalmazási példák:

Netflix

A Netflix, amely streaming szolgáltatásaival világszerte milliókat szolgál ki, a Docker segítségével javította az alkalmazásai skálázhatóságát és megbízhatóságát. 

A Netflix mikroservices architektúrát használ, ahol minden szolgáltatás különállóan fut konténerekben. Ez lehetővé teszi, hogy gyorsan skálázzák az egyes szolgáltatásokat, ahogy a terhelés nő vagy csökken. 

A Docker konténerek segítségével a Netflix csapata képes gyorsan frissítéseket telepíteni, hibaelhárításokat végezni, és új funkciókat bevezetni anélkül, hogy ez befolyásolná a szolgáltatás többi részét. 

Az automatizált telepítési folyamatok és a Docker konténerek rugalmassága lehetővé teszi, hogy a Netflix egy nagyon magas rendelkezésre állási szintet biztosítson az előfizetőknek.

Spotify

A Spotify is a Docker segítségével gyorsította fel a fejlesztési és tesztelési folyamatait. Mivel a Spotify több millió felhasználót szolgál ki világszerte, fontos volt számukra, hogy olyan rendszert építsenek, amely gyorsan skálázható és megbízható. 

A Docker konténerek lehetővé teszik, hogy a Spotify különböző szolgáltatásai, például a zenelejátszás, ajánlások és felhasználói interakciók külön-külön futtathatók legyenek, és szükség esetén gyorsan skálázhatók, ha a terhelés növekszik.

És most nézzük is meg, hogyan néz ki a Docker közelebbről…

 

Docker felépítése:

A Docker hatékonysága abban rejlik, hogy egyszerűen kezelhető, és több komponensből áll, amelyek együtt biztosítják a konténerizált alkalmazások futtatását. Ezek közül a legfontosabb elemek:

    • Docker Image: A Docker image az alkalmazás futtatásához szükséges fájlok és függőségek csomagja. Ez egy előre elkészített „sablon”, amely tartalmazza az alkalmazás összes szükséges erőforrását, könyvtárát és konfigurációs fájlját. Amikor egy konténert elindítasz, ezt az image-et használod a konténer létrehozására. Az image-ek a Dockerfile alapján jönnek létre, amely az alkalmazás telepítési és konfigurációs utasításait tartalmazza.

    • Docker Container: A konténer az a futó példánya az alkalmazásnak, amely az image-ből jön létre. A konténer magában foglalja az alkalmazás összes szükséges erőforrását, és elszigetelten fut a többi konténertől és az operációs rendszertől. Ez az izoláció biztosítja, hogy az alkalmazás megfelelően fusson, függetlenül attól, hogy hol van telepítve. A konténerek gyorsan indíthatók és leállíthatók, ami különösen hasznos a fejlesztési, tesztelési és éles környezetek gyors kezeléséhez.

    • Dockerfile: A Dockerfile az az utasításokat tartalmazó fájl, amely meghatározza, hogyan kell felépíteni egy Docker image-et. A fejlesztők itt adják meg, hogy milyen operációs rendszerre van szükség, milyen csomagokat kell telepíteni, és hogyan kell konfigurálni az alkalmazást. Ez a fájl teszi lehetővé, hogy az image mindig azonos módon épüljön fel, ami biztosítja az alkalmazások konzisztens futtatását különböző környezetekben.

    • Docker Hub: A Docker Hub egy központi tároló, ahol a fejlesztők megoszthatják és letölthetik a különböző Docker image-eket. Ez a közösségi tároló egyfajta piactérként is működik, ahol nyílt forráskódú projektek, népszerű alkalmazások vagy egyéni fejlesztésű container image-ek találhatók meg. A Docker Hub használatával a fejlesztők egyszerűen hozzáférhetnek mások által készített image-ekhez, vagy megoszthatják saját image-eiket a közösséggel.

    • Docker Compose: A Docker Compose egy olyan eszköz, amely lehetővé teszi, hogy több konténert egyszerre kezeljünk és futtassunk. Amikor egy alkalmazás több szolgáltatásból áll – például egy adatbázisból, háttérrendszerből és felhasználói felületből –, a Docker Compose segítségével mindezeket egyetlen parancs segítségével el lehet indítani és kezelni. A Compose megkönnyíti a komplex alkalmazások kezelését és telepítését, különösen akkor, ha több konténerből álló rendszerről van szó.

    A Docker tehát nem csupán egy egyszerű eszköz a fejlesztők számára, hanem egy teljes ökoszisztéma, amely biztosítja, hogy az alkalmazások könnyen hordozhatóak, megbízhatóak és rugalmasan kezelhetők legyenek. A Docker segítségével fejlesztőként hatékonyabban tudjuk kezelni az alkalmazások fejlesztését, tesztelését és telepítését, függetlenül attól, hogy milyen környezetben dolgozunk.

    De a Docker igazán nagy ereje a DevOps folyamatokban rejlik, ahol a fejlesztési és üzemeltetési csapatok közötti együttműködés gördülékenyebbé válik. 

    Most nézzük meg, hogyan használják a Dockert a folyamatos integráció (CI) és folyamatos szállítás (CD) folyamatokban, illetve hogyan működik együtt a Kubernetes-szel a skálázhatóság érdekében.

    Docker a DevOps folyamatokban

    A folyamatos integráció (Continuous Integration, CI) és a folyamatos szállítás (Continuous Delivery, CD) a modern fejlesztési folyamatok sarokkövei. Ezek lehetővé teszik, hogy a fejlesztők gyorsan és hatékonyan telepítsenek új funkciókat, illetve javítsanak hibákat az alkalmazásokban. A Docker fontos szerepet játszik ebben a folyamatban, mivel a CI/CD pipeline-ok során a fejlesztési és tesztelési környezetek gyorsan és könnyen replikálhatók.

    CI (Folyamatos integráció): A folyamatos integráció során a fejlesztők rendszeresen integrálják kódjaikat egy közös kódbázisba, majd az automatizált buildelési és tesztelési folyamatok ellenőrzik a változtatások helyességét. Docker segítségével ezek a folyamatok könnyedén izolálhatók, mivel minden egyes kódbázis-változtatást egy külön konténerben lehet tesztelni, amely pontosan ugyanazokat a függőségeket és beállításokat használja, mint a production environment. Így biztosítható, hogy a tesztelés során nem fordulnak elő „local-ban működött, de a production-ben nem” típusú problémák.

    CD (Folyamatos szállítás): A folyamatos szállítás során a kódváltoztatások automatikusan készülnek fel a deployment-re. A Docker segít abban, hogy ezek a változtatások könnyen kezelhetők és telepíthetők legyenek különböző környezetekben. A Docker image-ek készítése és az ezekből létrehozott konténerek gyorsan beépíthetők a deployment folyamatba, és a pipeline részeként automatizálható a konténerek buildelése, tesztelése, majd deployment-je.

    Egy gyakorlati példa erre a folyamatra a GitLab CI/CD rendszere, ahol egy fejlesztő kódját minden egyes módosítás után automatikusan buildelik és tesztelik egy Docker konténerben. A pipeline végén pedig az alkalmazás kész állapotba kerül, hogy szükség esetén automatikusan telepíthető legyen. Ez a módszer jelentősen felgyorsítja a fejlesztési ciklust, és lehetővé teszi, hogy a csapatok gyorsabban reagáljanak a felmerülő hibákra vagy új funkciókra.

    Docker és a Kubernetes

    Amikor az alkalmazások egyre nagyobb méreteket öltenek, és egyre több felhasználót kell kiszolgálni, a Docker konténerek skálázására van szükség. Itt lép be a képbe a Kubernetes, amely egy nyílt forráskódú platform a konténerek automatikus menedzselésére, skálázására és üzemeltetésére.

    A Kubernetes olyan rendszerek számára lett kifejlesztve, ahol rengeteg konténer fut egyszerre, és ezeket hatékonyan kell kezelni. Míg a Docker biztosítja a konténerek elkülönítését és futtatását, a Kubernetes gondoskodik arról, hogy ezek a konténerek összehangoltan működjenek nagyobb rendszerekben. Ez magában foglalja a konténerek automatikus elindítását és leállítását a rendszer terhelésének megfelelően, valamint a terheléselosztást a különböző konténerek között.

    Például, ha egy webalkalmazás hirtelen nagy forgalmat kap, a Kubernetes képes automatikusan újabb Docker konténereket elindítani, hogy a terhelést elosztva több szerver szolgálja ki a felhasználókat. Ha a terhelés csökken, a felesleges konténerek automatikusan leállíthatók, így erőforrást takarít meg.

    A Kubernetes ezen kívül gondoskodik arról, hogy a konténerek mindig elérhetők legyenek, még akkor is, ha valamelyik leáll vagy hiba lép fel. Ez különösen fontos nagy méretű, microservices alapú architektúrák esetében, ahol több szolgáltatás fut egymással párhuzamosan különböző konténerekben. 

    A Docker és a Kubernetes kombinációja lehetővé teszi a fejlesztők számára, hogy rugalmasan és biztonságosan skálázzák alkalmazásaikat, miközben biztosítják azok magas rendelkezésre állását.

    Szeretnéd jobban megismerni ezeket a technológiákat és elsajátítani azt a tudást, amellyel a felhő és DevOps alapú projektekbe komfortosan be tudsz csatlakozni majd? Akkor tudj meg többet erről szóló mentorált képzésünkről ezen a linken: https://courses.cubixedu.com/felho-alapu-szoftverfejlesztes-a-gyakorlatban

    A Docker tehát nem csak az alkalmazások konténerizálását teszi lehetővé, hanem szorosan kapcsolódik a modern DevOps gyakorlatokhoz is. A CI/CD folyamatok automatizálásában nagy szerepet játszik, mivel segít egységesíteni és gyorsítani a buildelési, tesztelési és deployment lépéseket. 

    Emellett a Kubernetes-szel együttműködve biztosítja, hogy ezek a konténerek nagyobb méretekben is kezelhetők és skálázhatók legyenek, így a rendszerek könnyen alkalmazkodhatnak a változó igényekhez.

    Miután ezeket áttekintettük, érdemes megvizsgálni a Docker használatának kihívásait és korlátait is. Bár a Docker számos előnnyel jár, nem mentes bizonyos nehézségektől, amelyeket fejlesztőként vagy üzemeltetőként számításba kell vennünk a mindennapi használat során.

     

    Docker kihívásai és korlátai:

    Konténer biztonság

    Bár a Docker jelentős mértékben leegyszerűsíti a fejlesztési és telepítési folyamatokat, a konténer biztonság kérdése kihívásokat jelenthet. A konténerek ugyan izolált környezetben futnak, de mindegyikük osztozik a gazdagép operációs rendszerének kernelén. Ez azt jelenti, hogy ha egy konténer hozzáférést szerez a gazdagép erőforrásaihoz, akár más konténerekhez is hozzáférhet, ami potenciális biztonsági kockázatot jelenthet.

    A biztonság megőrzéséhez a fejlesztőknek biztosítaniuk kell, hogy a konténerek megfelelően izoláltak legyenek, például a namespace és cgroup technológiák segítségével, amelyek külön kezelik a konténerek erőforrásait. 

    Emellett fontos a jogosultságok szigorú kezelése, hogy egy konténer ne tudjon hozzáférni olyan erőforrásokhoz, amelyekre nincs szüksége. A Docker Security és a különböző eszközök, mint például a SELinux vagy a seccomp, tovább növelhetik a konténerek biztonságát.

    Konténer szintű hibakeresés

    A konténerek hibakeresése egy másik olyan terület, amely kihívásokat jelenthet, különösen akkor, ha a konténerek gyorsan és nagy számban jönnek létre és tűnnek el. 

    A Docker azonban számos eszközt kínál a konténerek állapotának és működésének diagnosztizálására.

      • Docker Logs: Minden konténer rendelkezik saját naplófájlokkal, amelyek segítségével nyomon követhető az alkalmazás viselkedése. A docker logs paranccsal megtekinthetők ezek a naplók, így az üzemeltetők gyorsan és könnyen kinyomozhatják, miért történt hiba egy adott konténerben.

      • Docker Inspect: A docker inspect parancs segítségével részletes információkat kérhetünk le egy konténerről vagy image-ről. Ez a parancs segít kideríteni, hogy egy konténer hogyan lett konfigurálva, milyen hálózati beállításokat használ, vagy milyen hibák léptek fel az indulása során.

      Ezek az eszközök lehetővé teszik, hogy a konténerek hibáit gyorsan azonosítsuk és javítsuk, de nagy rendszerek esetén ez még mindig komoly kihívást jelenthet, különösen, ha sok konténer fut egyszerre.

      Túl sok konténer kezelése

      Amikor a rendszer nagy számú konténert futtat egyszerre, a konténerek kezelése egyre összetettebbé válik. Itt jönnek be a képbe olyan eszközök, mint a már említett Kubernetes és a Docker Swarm, amelyek lehetővé teszik a konténerek automatikus menedzselését és skálázását.

        • Docker Swarm: Ez a Docker beépített megoldása a konténerek klaszterizálására. Lehetővé teszi, hogy több gazdagép együttesen kezeljen és futtasson konténereket. A Swarm segítségével egyszerűsíthető a konténerek elosztása és menedzselése több szerveren is.

        • Kubernetes: Ahogy már korábban is említettük, a Kubernetes a legelterjedtebb eszköz nagy mennyiségű konténer kezelésére. Automatikusan képes kezelni a konténerek indítását, leállítását és újraindítását, továbbá biztosítja az alkalmazások skálázhatóságát és rendelkezésre állását. A Kubernetes emellett különféle monitorozási és automatizálási funkciókat is kínál, amelyek lehetővé teszik a konténerek hatékony menedzselését, még nagyobb rendszerek esetén is.

        Ha ezek után is belemerülnél a Docker-be, akkor most megmutatjuk, hogyan kezdhetünk el dolgozni a vele saját fejlesztési környezetünkben. Az alábbiakban lépésről lépésre végigvezetlek a Docker telepítésén és egy egyszerű projekt létrehozásán, amely segít megérteni, hogyan használhatjuk a Dockert az alkalmazások konténerizálásához és futtatásához.

        Gyakorlati lépések a Docker használatához avagy hogyan kezdj el dolgozni a Dockerrel?

        1. A Docker telepítése

        Az első lépés, hogy telepítsük a Dockert a fejlesztői környezetünkre. A Docker Windows, macOS és Linux rendszereken is elérhető, és viszonylag egyszerűen telepíthető.

        Windows és macOS:

        • Kövesd a telepítési útmutatót, és a telepítés után indítsd el a Docker Desktopot. A telepítést követően ellenőrizheted, hogy működik-e a Docker, ha egy terminál ablakban megadod a docker –version parancsot.

        Linux: 

          • Nyisd meg a terminált, és futtasd az alábbi parancsokat a Docker telepítéséhez Ubuntu rendszeren (más disztribúciókhoz eltérőek lehetnek a lépések):
          				
          					sudo apt-get update
          sudo apt-get install docker-ce docker-ce-cli containerd.io
          				
          			
          • Ellenőrizd a telepítést a docker –version paranccsal.
           

          2. Docker Image letöltése és futtatása

          A Docker használatához először is egy image-re lesz szükséged. Ezek olyan sablonok, amelyekből konténereket lehet indítani. Kezdésképpen próbáljunk ki egy hivatalos Docker image-et, például egy egyszerű web szervert a nginx segítségével.

          • A következő parancs letölti az nginx image-et és elindít egy konténert:
          				
          					docker run -d -p 8080:80 nginx
          
          				
          			
          • Ezzel a parancssal letöltöd az nginx image-et, majd elindítod a konténert úgy, hogy a helyi gépen a 8080-as porton elérhetővé válik. Ha most megnyitod a böngészőt, és begépeled a http://localhost:8080 címet, láthatod az nginx alapértelmezett weboldalát.

           

          3. A Docker parancsok megismerése

          Néhány hasznos Docker parancs, amit érdemes kipróbálni:

          Futó konténerek listázása:

          				
          					docker ps
          
          				
          			

          Konténer leállítása:

          				
          					docker stop <container_id>
          
          				
          			

          Image-ek listázása:

          				
          					docker images
          				
          			

          Első projekt Docker-ben

          Most, hogy megvan az alapvető ismereted a Docker használatáról, készítsünk egy egyszerű Node.js alapú webalkalmazást, és konténerizáljuk azt Dockerrel, majd futtassuk azt egy Docker konténerben.

          1. lépés: alkalmazás létrehozása

          Először hozzunk létre egy egyszerű Node.js alkalmazást:

          Hozz létre egy új könyvtárat és navigálj bele:

          				
          					mkdir docker-example
          cd docker-example
          
          				
          			

          Hozz létre egy új fájlt app.js néven, és írj bele egy egyszerű Node.js alkalmazást:

          				
          					const http = require('http');
          
          const hostname = '0.0.0.0';
          const port = 3000;
          
          const server = http.createServer((req, res) => {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain');
            res.end('Hello, Docker!\n');
          });
          
          server.listen(port, hostname, () => {
            console.log(`Server running at http://${hostname}:${port}/`);
          });
          
          				
          			

          Hozz létre egy package.json fájlt, amely definiálja az alkalmazást:

          				
          					{
            "name": "docker-example",
            "version": "1.0.0",
            "description": "My first Dockerized Node.js app",
            "main": "app.js",
            "scripts": {
              "start": "node app.js"
            },
            "dependencies": {
              "http": "^0.0.1"
            }
          }
          
          				
          			

          2. Lépés: Dockerfile létrehozása

          Most hozunk létre egy Dockerfile-t, amely meghatározza, hogyan kell a Node.js alkalmazást konténerizálni. A Dockerfile tartalmazza az alkalmazás telepítéséhez szükséges utasításokat.

          Hozz létre egy új fájlt Dockerfile néven:

          				
          					# Alap image a hivatalos Node.js image-ből
          FROM node:14
          
          # Az alkalmazás könyvtárának létrehozása a konténerben
          WORKDIR /usr/src/app
          
          # A package.json és package-lock.json fájlok másolása
          COPY package*.json ./
          
          # Függőségek telepítése
          RUN npm install
          
          # Az alkalmazás másolása a konténerbe
          COPY . .
          
          # A port beállítása, amit a konténer használni fog
          EXPOSE 3000
          
          # Parancs, amely elindítja az alkalmazást
          CMD [ "npm", "start" ]
          
          				
          			

          3. Lépés: Docker image építése és futtatása

          Az alkalmazás konténerizálásához először építsük meg az image-et:

          				
          					docker build -t docker-example .
          
          				
          			

          Ezután futtassuk a konténert a következő paranccsal:

          				
          					docker run -p 3000:3000 docker-example
          
          				
          			

          Most nyisd meg a böngésződ, és látogass el a http://localhost:3000 címre. Látni fogod a „Hello, Docker!” üzenetet, amely a konténerben futó Node.js alkalmazásból származik.

          Ez az alapozás megmutatta, hogyan lehet létrehozni, futtatni és tesztelni alkalmazásokat különböző környezetekben a Docker segítségével, ami később lehetővé teszi, hogy skálázható és rugalmas rendszereket építs.

           

          Összegzés

          A Docker rendkívül hatékony eszköz a modern szoftverfejlesztés és üzemeltetés terén, hiszen egyszerűsíti a fejlesztési folyamatokat, megkönnyíti az alkalmazások konténerizálását és gyorsítja a telepítést. 

          A világ legnagyobb technológiai cégei, mint a Facebook, Netflix és a PayPal, mind sikeresen integrálták a Dockert, hogy fejlesztési folyamataikat hatékonyabbá és skálázhatóbbá tegyék. 

          A konténerek használatával a fejlesztők izolált környezetekben dolgozhatnak, biztosítva, hogy az alkalmazások minden környezetben ugyanúgy működjenek.

          Ha téged is érdekel a Docker és a konténerizáció világa, és szeretnéd elmélyíteni a tudásodat a DevOps módszertanokban, érdemes megismerned átfogó, gyakorlatorientált képzésünket. A DevOps a gyakorlatban Kubernetes segítségével kurzus lehetőséget ad arra, hogy valós projekteken keresztül sajátítsd el, hogyan használható a Docker, a Kubernetes és még sok más technológia a felhő alapú szoftverfejlesztésben és a konténerizációban.

          • Nyisd meg a terminált, és futtasd az alábbi parancsokat a Docker telepítéséhez Ubuntu rendszeren (más disztribúciókhoz eltérőek lehetnek a lépések):
          				
          					sudo apt-get update
          sudo apt-get install docker-ce docker-ce-cli containerd.io
          				
          			
          • Ellenőrizd a telepítést a docker –version paranccsal.
           

          2. Docker Image letöltése és futtatása

          A Docker használatához először is egy image-re lesz szükséged. Ezek olyan sablonok, amelyekből konténereket lehet indítani. Kezdésképpen próbáljunk ki egy hivatalos Docker image-et, például egy egyszerű web szervert a nginx segítségével.

          • A következő parancs letölti az nginx image-et és elindít egy konténert:
          				
          					docker run -d -p 8080:80 nginx
          
          				
          			
          • Ezzel a parancssal letöltöd az nginx image-et, majd elindítod a konténert úgy, hogy a helyi gépen a 8080-as porton elérhetővé válik. Ha most megnyitod a böngészőt, és begépeled a http://localhost:8080 címet, láthatod az nginx alapértelmezett weboldalát.

           

          3. A Docker parancsok megismerése

          Néhány hasznos Docker parancs, amit érdemes kipróbálni:

          Futó konténerek listázása:

          				
          					docker ps
          
          				
          			

          Konténer leállítása:

          				
          					docker stop <container_id>
          
          				
          			

          Image-ek listázása:

          				
          					docker images
          				
          			

          Első projekt Docker-ben

          Most, hogy megvan az alapvető ismereted a Docker használatáról, készítsünk egy egyszerű Node.js alapú webalkalmazást, és konténerizáljuk azt Dockerrel, majd futtassuk azt egy Docker konténerben.

          1. lépés: alkalmazás létrehozása

          Először hozzunk létre egy egyszerű Node.js alkalmazást:

          Hozz létre egy új könyvtárat és navigálj bele:

          				
          					mkdir docker-example
          cd docker-example
          
          				
          			

          Hozz létre egy új fájlt app.js néven, és írj bele egy egyszerű Node.js alkalmazást:

          				
          					const http = require('http');
          
          const hostname = '0.0.0.0';
          const port = 3000;
          
          const server = http.createServer((req, res) => {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain');
            res.end('Hello, Docker!\n');
          });
          
          server.listen(port, hostname, () => {
            console.log(`Server running at http://${hostname}:${port}/`);
          });
          
          				
          			

          Hozz létre egy package.json fájlt, amely definiálja az alkalmazást:

          				
          					{
            "name": "docker-example",
            "version": "1.0.0",
            "description": "My first Dockerized Node.js app",
            "main": "app.js",
            "scripts": {
              "start": "node app.js"
            },
            "dependencies": {
              "http": "^0.0.1"
            }
          }
          
          				
          			

          2. Lépés: Dockerfile létrehozása

          Most hozunk létre egy Dockerfile-t, amely meghatározza, hogyan kell a Node.js alkalmazást konténerizálni. A Dockerfile tartalmazza az alkalmazás telepítéséhez szükséges utasításokat.

          Hozz létre egy új fájlt Dockerfile néven:

          				
          					# Alap image a hivatalos Node.js image-ből
          FROM node:14
          
          # Az alkalmazás könyvtárának létrehozása a konténerben
          WORKDIR /usr/src/app
          
          # A package.json és package-lock.json fájlok másolása
          COPY package*.json ./
          
          # Függőségek telepítése
          RUN npm install
          
          # Az alkalmazás másolása a konténerbe
          COPY . .
          
          # A port beállítása, amit a konténer használni fog
          EXPOSE 3000
          
          # Parancs, amely elindítja az alkalmazást
          CMD [ "npm", "start" ]
          
          				
          			

          3. Lépés: Docker image építése és futtatása

          Az alkalmazás konténerizálásához először építsük meg az image-et:

          				
          					docker build -t docker-example .
          
          				
          			

          Ezután futtassuk a konténert a következő paranccsal:

          				
          					docker run -p 3000:3000 docker-example
          
          				
          			

          Most nyisd meg a böngésződ, és látogass el a http://localhost:3000 címre. Látni fogod a „Hello, Docker!” üzenetet, amely a konténerben futó Node.js alkalmazásból származik.

          Ez az alapozás megmutatta, hogyan lehet létrehozni, futtatni és tesztelni alkalmazásokat különböző környezetekben a Docker segítségével, ami később lehetővé teszi, hogy skálázható és rugalmas rendszereket építs.

           

          Összegzés

          A Docker rendkívül hatékony eszköz a modern szoftverfejlesztés és üzemeltetés terén, hiszen egyszerűsíti a fejlesztési folyamatokat, megkönnyíti az alkalmazások konténerizálását és gyorsítja a telepítést. 

          A világ legnagyobb technológiai cégei, mint a Facebook, Netflix és a PayPal, mind sikeresen integrálták a Dockert, hogy fejlesztési folyamataikat hatékonyabbá és skálázhatóbbá tegyék. 

          A konténerek használatával a fejlesztők izolált környezetekben dolgozhatnak, biztosítva, hogy az alkalmazások minden környezetben ugyanúgy működjenek.

          Ha téged is érdekel a Docker és a konténerizáció világa, és szeretnéd elmélyíteni a tudásodat a DevOps módszertanokban, érdemes megismerned átfogó, gyakorlatorientált képzésünket. A DevOps a gyakorlatban Kubernetes segítségével kurzus lehetőséget ad arra, hogy valós projekteken keresztül sajátítsd el, hogyan használható a Docker, a Kubernetes és még sok más technológia a felhő alapú szoftverfejlesztésben és a konténerizációban.

          Hírlevél feliratkozás

          Az adataim megadásával elfogadom a Cubix Institute of Technology adatkezelési tájékoztatóját.
          Oszd meg, ha tetszett:
          Facebook
          Twitter
          LinkedIn
          Email

          Saját blogposztot szeretnél megosztani?

          A jelentkezéshez töltsd ki az űrlapot

          Vendégcikk beküldése

          Add meg elérhetőségeidet, valamint csatold be az általad megosztani kívánt tartalmat.

          Az adataim megadásával elfogadom a Cubix Institute of Technology adatkezelési tájékoztatóját.

          Beiratkozás most!

          Vezetéknév *
          Email *
          Keresztnév *
          Telefonszám *
          Válassz kezdés időpontot
          Fizetési mód *
          Számlázási név
          Irányítószám
          Cím (utca házszám)
          Ország
          Város
          Cégnév
          Adószám

          * Az adataim megadásával elfogadom a Cubix Institute of Technology adatkezelési tájékoztatóját.

          Are you interested, but have a few questions?​

          Fill out this form and we will get back to you and answer all your questions.

          Please select form to show
          By providing your data, you accept the Cubix Institute of Technology Privacy Policy.

          Szeretnék értesülni a következő elérhető tanfolyam időpontjáról.​

          Az adataim megadásával elfogadom a Cubix Institute of Technology adatkezelési tájékoztatóját.

          Érdekel, de van néhány kérdésem.

          Add meg elérhetőségedet és hamarosan jelentkezünk további információkkal a képzéssel kapcsolatosan.

          Az adataim megadásával elfogadom a Cubix Institute of Technology adatkezelési tájékoztatóját.

          Are you interested, but have a few questions?​

          Fill out this form and we will get back to you and answer all your questions.

          Please select form to show
          By providing your data, you accept the Cubix Institute of Technology Privacy Policy.

          Enroll Now!

          Fill out this form and we will get back to you and answer all your questions.

          First Name *
          Email *
          Last Name *
          Phone number *
          Choose starting date
          Payment Method *
          Billing Name
          ZIP
          Address
          Country
          City
          Company
          TAX Number

          * By providing your data, you accept the Cubix Institute of Technology Privacy Policy.