User Tools

Site Tools


tanszek:oktatas:informatikai_rendszerek_epitese:docker_ismerteto

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:informatikai_rendszerek_epitese:docker_ismerteto [2025/03/26 13:26] kissatanszek:oktatas:informatikai_rendszerek_epitese:docker_ismerteto [2025/03/26 13:39] (current) – [Feladatok] kissa
Line 6: Line 6:
 A felhő alapú számítástechnika lehetővé teszi a vállalatok számára, hogy minimalizálják az IT-infrastruktúra felépítésének kezdeti költségeit, valamint alkalmazásaikat gyorsabban üzembe helyezzék, jobb kezelhetőség és kevesebb karbantartás mellett. A felhő alapú számítástechnika lehetővé teszi a vállalatok számára, hogy minimalizálják az IT-infrastruktúra felépítésének kezdeti költségeit, valamint alkalmazásaikat gyorsabban üzembe helyezzék, jobb kezelhetőség és kevesebb karbantartás mellett.
  
-Lehetővé teszi továbbá, hogy a szolgáltatók gyorsan adaptálják saját erőforrásaikat az ingadozó, vagy csak időszakosan kiugró igényekhez (pl. Black Friday egy webshopnál, sorozat premier egy streaming szolgáltatónál). Ezt „cloud bursting”-nek is nevezzük. +Lehetővé teszi továbbá, hogy a szolgáltatók valamely publikus felhőszolgáltatás felhasználásával gyorsan adaptálják saját erőforrásaikat az ingadozó, vagy csak időszakosan kiugró igényekhez (pl. Black Friday egy webshopnál, sorozat premier egy streaming szolgáltatónál). Ezt „cloud bursting”-nek is nevezzük. 
  
 ===== Konténerek ===== ===== Konténerek =====
Line 18: Line 18:
 A konténer technológia, mint OS-szintű virtualizáció jelen van, és egyre inkább teret nyer a modern szoftverek üzemeltetésében. A számítási felhő platformok következő generációja nem a hardverek, hanem az alkalmazások virtualizációján alapul. A konténer technológia, mint OS-szintű virtualizáció jelen van, és egyre inkább teret nyer a modern szoftverek üzemeltetésében. A számítási felhő platformok következő generációja nem a hardverek, hanem az alkalmazások virtualizációján alapul.
  
-{{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132224.png}}+{{ tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132224.png }}
  
-A klasszikus virtuális gépek általában úgy működnek, hogy egy hypervisor felügyel több virtuális gépet (VM), melyek egyenként külön operációs rendszert futtatnak. A konténerek esetében minden alkalmazás ugyanazon az operációs rendszeren fut, viszont konténerenként külön-külön, elszeparált környezetekben. A konténerek között tehát processz szintű izoláció valósul meg, melyet a hoszt gép kernele biztosít.+A klasszikus, [[https://en.wikipedia.org/wiki/Hypervisor||hypervisor]] alapú virtuális gépek úgy működnek, hogy hypervisor több virtuális gépet (VM) felügyel, melyek egyenként külön operációs rendszert futtatnak. A konténerek esetében minden alkalmazás ugyanazon az operációs rendszeren fut, viszont konténerenként külön-külön, elszeparált környezetekben. A konténerek között tehát processz szintű izoláció valósul meg, melyet a hoszt gép kernele biztosít.
  
 Mivel egy-egy alkalmazás elindításakor nem kell a kernel elindulására várni, a rendszerindítási folyamat sokkal gyorsabb, mint a hagyományos VM-ek esetében. Emellett az erőforrás kihasználás jelentősen jobb (közel natív teljesítmény elérésére van lehetőség), mint a virtuális gépeknél. Mivel egy-egy alkalmazás elindításakor nem kell a kernel elindulására várni, a rendszerindítási folyamat sokkal gyorsabb, mint a hagyományos VM-ek esetében. Emellett az erőforrás kihasználás jelentősen jobb (közel natív teljesítmény elérésére van lehetőség), mint a virtuális gépeknél.
Line 30: Line 30:
 A konténerek emellett kisebb tár- és memóriaigénnyel rendelkeznek, mint a VM-ek, emiatt könnyebben lehet őket alkalmazni multi-cloud környezetben, ahol a szolgáltatás egyszerre több felhőben (pl. céges privátfelhő, Google Cloud Platform, Microsoft Azure, Amazon Web Services) van üzemeltetve. Jól alkalmazhatók továbbá cloud bursting során, amikor a megnövekvő igények miatt a saját infrastruktúra mellett igénybe kell venni egy publikus felhőszolgáltatást is az üzemeltetett alkalmazás számára. A konténerek emellett kisebb tár- és memóriaigénnyel rendelkeznek, mint a VM-ek, emiatt könnyebben lehet őket alkalmazni multi-cloud környezetben, ahol a szolgáltatás egyszerre több felhőben (pl. céges privátfelhő, Google Cloud Platform, Microsoft Azure, Amazon Web Services) van üzemeltetve. Jól alkalmazhatók továbbá cloud bursting során, amikor a megnövekvő igények miatt a saját infrastruktúra mellett igénybe kell venni egy publikus felhőszolgáltatást is az üzemeltetett alkalmazás számára.
  
-A konténerek számos előnnyel rendelkeznek, de architektúrájukból adódóan sebezhetőbb megoldásnak számítanak, mint a klasszikus virtuális gépek, ugyanis minden konténer egyetlen kernelen fut, és csupán ennek a kernelnek a hibáiból adódóan (Single Point of Failure) előfordulhat nem kívánt adatszivárgás a konténerek között.+A konténerek számos előnnyel rendelkeznek, de architektúrájukból adódóan sebezhetőbb megoldásnak számítanak, mint a klasszikus virtuális gépek, ugyanis minden konténer egyetlen kernelen fut, és csupán ennek a kernelnek (vagy a konténer motornak) a hibáiból adódóan ([[https://en.wikipedia.org/wiki/Single_point_of_failure|Single Point of Failure]]) előfordulhat nem kívánt adatszivárgás a konténerek között.
  
 ===== Docker ===== ===== Docker =====
Line 37: Line 37:
 ==== Architektúra ==== ==== Architektúra ====
  
-{{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132236.png}}+{{ tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132236.png }}
  
 A Docker architektúrális felépítését, valamint legfontosabb parancsait a fenti ábra mutatja be. A Docker architektúrális felépítését, valamint legfontosabb parancsait a fenti ábra mutatja be.
Line 54: Line 54:
 A képfájl a konténer statikus váza, egy recept arra vonatkozóan, hogy hogyan tudjuk a konténert létrehozni és elindítani. A képfájl a konténer statikus váza, egy recept arra vonatkozóan, hogy hogyan tudjuk a konténert létrehozni és elindítani.
  
-{{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132253.png}}+{{ tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132253.png }}
  
 Egy képfájlból több konténer is létrehozható, például abban az esetben lehet erre szükség, ha alkalmazásunk válaszidejét csökkenteni szeretnénk, például az alábbi módok valamelyikén: Egy képfájlból több konténer is létrehozható, például abban az esetben lehet erre szükség, ha alkalmazásunk válaszidejét csökkenteni szeretnénk, például az alábbi módok valamelyikén:
Line 68: Line 68:
 Ennek a problémának a megoldása miatt van lehetőségünk ún. **perzisztens tárolók** (volume-ok) létrehozására. A perzisztens tárolók nem a konténer virtualizált – és kívülről közvetlenül elérhetetlen - fájlrendszerén, hanem közvetlenül a hoszt gépen kerülnek tárolásra, ahogy az az alábbi ábrán is látható. Ennek a problémának a megoldása miatt van lehetőségünk ún. **perzisztens tárolók** (volume-ok) létrehozására. A perzisztens tárolók nem a konténer virtualizált – és kívülről közvetlenül elérhetetlen - fájlrendszerén, hanem közvetlenül a hoszt gépen kerülnek tárolásra, ahogy az az alábbi ábrán is látható.
  
-{{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132557.png}}+{{ tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132557.png }}
  
 Perzisztens tárolókat nevük és opcionálisan egyes jellemzőik (pl. méretük) megadásával hozhatunk létre. A tároló nevének egyedinek kell lennie. Perzisztens tárolókat nevük és opcionálisan egyes jellemzőik (pl. méretük) megadásával hozhatunk létre. A tároló nevének egyedinek kell lennie.
Line 80: Line 80:
 Az alkalmazások gyakran több konténerre oszthatóak, ezek a konténerek a hálózaton keresztül képesek kommunikálni egymással. A Docker többféle virtualizált hálózatkezelési módszert támogat, melyek közül leggyakrabban [[https://docs.docker.com/engine/network/drivers/bridge/|bridge network]]-öket használnak. Az alkalmazások gyakran több konténerre oszthatóak, ezek a konténerek a hálózaton keresztül képesek kommunikálni egymással. A Docker többféle virtualizált hálózatkezelési módszert támogat, melyek közül leggyakrabban [[https://docs.docker.com/engine/network/drivers/bridge/|bridge network]]-öket használnak.
  
-{{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132611.png}}+{{ tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-132611.png }}
  
 Ahogy az a képen is látható, az azonos hálózathoz hozzákapcsolt konténerek (''todo-backend'', ''todo-database'') egymással kommunikálni tudnak, azonban a különböző hálózaton lévő konténerek (pl. a ''some-application'' és a ''todo-backend'') nem érhetik el egymást. Egy konténer egyébként akár több hálózathoz is kapcsolódhat. Ahogy az a képen is látható, az azonos hálózathoz hozzákapcsolt konténerek (''todo-backend'', ''todo-database'') egymással kommunikálni tudnak, azonban a különböző hálózaton lévő konténerek (pl. a ''some-application'' és a ''todo-backend'') nem érhetik el egymást. Egy konténer egyébként akár több hálózathoz is kapcsolódhat.
Line 92: Line 92:
 ==== Feladatok ==== ==== Feladatok ====
  
-  * [[tanszek:oktatas:informatikai_rendszerek_epitese:docker_vitualizacio|Flash szerver és Redis cache beüzemelése]]+  * [[tanszek:oktatas:informatikai_rendszerek_epitese:docker_vitualizacio|Flask szerver és Redis cache beüzemelése]]
   * [[tanszek:oktatas:informacios_rendszerek_integralasa:docker_loadbalancer|Terhelés elosztás és monitorozás HAProxy segítségével]]   * [[tanszek:oktatas:informacios_rendszerek_integralasa:docker_loadbalancer|Terhelés elosztás és monitorozás HAProxy segítségével]]
   * {{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-131416.pdf|Todo webalkalmazás beüzemelése}} + [[https://github.com/aron123/docker-tutorial|Forráskód]]   * {{:tanszek:oktatas:informatikai_rendszerek_epitese:pasted:20250326-131416.pdf|Todo webalkalmazás beüzemelése}} + [[https://github.com/aron123/docker-tutorial|Forráskód]]
  
tanszek/oktatas/informatikai_rendszerek_epitese/docker_ismerteto.1742995611.txt.gz · Last modified: 2025/03/26 13:26 by kissa