Docker és Mikroszolgáltatások Kérdések
46 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Hogyan különbözik a docker attach és a docker exec parancs használata?

A docker attach a főfolyamathoz csatlakozik, míg a docker exec új folyamatot indít a futó konténerben.

Milyen célra használhatók a Docker volume-ok?

A Docker volume-ok perzisztens adatok tárolását segítik, osztott mappákként funkcionálnak a hoszt gép és a konténerek között.

Mit jelent a :ro végződés a Docker volume parancsban?

A :ro végződés azt jelenti, hogy a volume-ot a konténer csak olvashatja (read-only).

Mi a Docker hálózatok szerepe a konténerek kommunikációjában?

<p>A Docker hálózatok lehetővé teszik a konténerek közötti kommunikációt és segítik az elszigetelés kontrollját.</p> Signup and view all the answers

Milyen IP címet kap a hoszt gép a Docker hálózat létrehozásakor?

<p>A hoszt gép a 172.xx.0.1 IP címet kapja.</p> Signup and view all the answers

Mi a szerepe a COPY utasításnak a Dockerfile-ban?

<p>A <code>COPY</code> utasítás átmásolja a fájlokat a megadott forrásból a konténer fájlrendszerébe.</p> Signup and view all the answers

Miért előnyös a mikroszervíz-orientált architektúra használata?

<p>Segít a nagyobb projekteket kisebb, jól definiált folyamatokra bontani, amely elősegíti az agilis fejlődést és a skálázhatóságot.</p> Signup and view all the answers

Milyen kommunikációs modelleket említenek a mikroszervizek interakciójára?

<p>A REST és az üzenetsorok kommunikációs modellek.</p> Signup and view all the answers

Melyik Docker alapú képet használnak a Gradle alkalmazás futtatásához a megadott példa szerint?

<p>Az <code>eclipse-temurin:21-jre-alpine</code> alapú képet.</p> Signup and view all the answers

Milyen előnyöket kínál a konténerek használata a modern szoftverfejlesztésben?

<p>Lehetővé teszi a redundáns rendszerek létrehozását és a különböző programozási nyelvek használatát.</p> Signup and view all the answers

Miért lehet nehezen karbantartható a hagyományos 'docker run' parancsok használata?

<p>A 'docker run' parancsok sok részletet és opciót tartalmaznak, amelyeket nehézkes és bonyolult összerakni és karbantartani.</p> Signup and view all the answers

Milyen fájlformátumban konfiguráljuk a docker-compose beállításokat?

<p>A docker-compose beállításokat YAML szintaxisú leíró állományban konfiguráljuk.</p> Signup and view all the answers

Mit jelent az 'environment' rész a docker-compose.yml fájlban?

<p>Az 'environment' részben környezeti változók kerülnek megadásra, amelyek befolyásolják a konténerek működését.</p> Signup and view all the answers

Milyen parancsot használunk az összes konténer létrehozására és indítására?

<p>Az összes konténer létrehozására és indítására a 'docker compose up' parancsot használjuk.</p> Signup and view all the answers

Mit tesz a 'docker compose down' parancs?

<p>A 'docker compose down' parancs lezárja a rendszerben futó konténereket és eltávolítja az összes kapcsolódó erőforrást.</p> Signup and view all the answers

Hogy használjuk a docker-compose parancsokat egy adott szolgáltatásra?

<p>Egy adott szolgáltatásra vonatkozó parancsokat úgy alkalmazunk, hogy a parancs végén megadjuk a szolgáltatás nevét.</p> Signup and view all the answers

Mire használjuk a 'docker compose logs' parancsot?

<p>A 'docker compose logs' parancsot a konténerek logjainak megjelenítésére használjuk.</p> Signup and view all the answers

Mi lehet egy következménye a docker-compose használatának a konténerek közötti hálózati kapcsolatok szempontjából?

<p>A docker-compose automatikusan létrehoz egy új dedikált hálózatot, amelyhez az összes definiált konténer csatlakozik.</p> Signup and view all the answers

Mi a GitLab CI funkciója?

<p>A GitLab CI a folyamatos integrációt biztosít a szoftverfejlesztés folyamatában.</p> Signup and view all the answers

Hogyan kezdődik egy pipeline a GitLab CI-ben?

<p>Egy pipeline akkor indul, amikor új kódot pusholnak a tárolóba.</p> Signup and view all the answers

Mik azok a stage-ek a GitLab CI rendszerében?

<p>A stage-ek a pipeline egyes lépései, amelyek szigorúan meghatározott sorrendben hajtódnak végre.</p> Signup and view all the answers

Mit jelent a job a GitLab CI-ben?

<p>A job egy teendő végrehajtására szolgáló egység, mint például buildelés vagy tesztelés.</p> Signup and view all the answers

Mi történik, ha egy job a GitLab CI-ben sikertelen?

<p>Ha egy job sikertelenül zárul, akkor a trade, és ezzel a pipeline későbbi szakaszai is elbuknak.</p> Signup and view all the answers

Miből áll egy .gitlab-ci.yml fájl?

<p>A .gitlab-ci.yml fájl stage-ek és job-ok definícióiból áll.</p> Signup and view all the answers

Milyen típusú Docker image-eket használhatunk job-okhoz?

<p>A job-okhoz bármilyen támogatott Docker image-et használhatunk, például 'alpine' vagy 'node'.</p> Signup and view all the answers

Mik azok a környezeti változók a GitLab CI-ben?

<p>A környezeti változók olyan speciális adatok, amelyek elérhetők a job-ok futása közben.</p> Signup and view all the answers

Mivel konfigurálható a GitLab CI?

<p>A GitLab CI a .gitlab-ci.yml fájllal konfigurálható.</p> Signup and view all the answers

Hogyan lehet manuálisan indítani job-okat a GitLab CI-ben?

<p>Egyes job-ok manuálisan állíthatók be, így a felhasználók kézzel indíthatják el őket a GitLab felületről.</p> Signup and view all the answers

Milyen parancsot használunk egy Docker image letöltésére?

<p>A <code>docker image pull</code> parancsot.</p> Signup and view all the answers

Mi a funkciója a docker image tag parancsnak?

<p>Ez a parancs egy tag megadására szolgál egy forrás image-nek.</p> Signup and view all the answers

Mit csinál a docker container ls parancs?

<p>Futó konténerek listázását végzi.</p> Signup and view all the answers

Milyen paraméterrel indíthatunk egy Docker konténert háttérben?

<p>A <code>-d</code> paraméterrel.</p> Signup and view all the answers

Miért fontos a build rendszerek használata a szoftverfejlesztés során?

<p>Az automatizálás révén csökkentik a hibák lehetőségét és időt takarítanak meg a fejlesztési folyamatok során.</p> Signup and view all the answers

Mi a Makefile szerepe a fejlesztési folyamatokban?

<p>A Makefile tartalmazza a végrehajtandó parancsokat és teszi lehetővé az automatizált build folyamatokat.</p> Signup and view all the answers

Miért nem migrálhatók a Docker konténerek gépről gépre?

<p>A Docker konténerek infrastruktúrától függetlenül futnak, de nem migrálhatók.</p> Signup and view all the answers

Milyen előnyei vannak az automatizált tesztelésnek a szoftverfejlesztésben?

<p>Az automatizált tesztelés gyorsabb visszajelzést ad a fejlesztőknek és csökkenti az emberi hiba lehetőségét.</p> Signup and view all the answers

Milyen legacy variánsa van a docker image push parancsnak?

<p>A legacy variáns a <code>docker push</code>.</p> Signup and view all the answers

Hogyan lehet eltávolítani egy Docker image-t?

<p>A <code>docker image rm</code> parancs használatával.</p> Signup and view all the answers

Miért fontos a megfelelő verziójú külső könyvtárak használata a projektekben?

<p>A pontos verziók használata segít elkerülni a kompatibilitási problémákat és a váratlan hibákat.</p> Signup and view all the answers

Milyen eszközők állnak rendelkezésre Java környezetben a függőségkezeléshez?

<p>A Java környezetben a Maven és a Gradle használható függőségkezelésre.</p> Signup and view all the answers

Mit jelent a --rm flag a docker run parancsban?

<p>Ez törli a konténert, amikor kilépünk belőle.</p> Signup and view all the answers

Milyen parancsot használunk egy már futó konténerhez való parancsfuttatásra?

<p>A <code>docker exec</code> parancsot.</p> Signup and view all the answers

Mik az alapvető különbségek a build automatizálás és a függőségkezelés között?

<p>A build automatizálás a szoftver összeállítását segíti, míg a függőségkezelés a külső könyvtárak és keretrendszerek beszerzését koordinálja.</p> Signup and view all the answers

Miért nem tárolják a függőségeket a verziókövető rendszerekben?

<p>A függőségek tárolása nem célszerű, mivel ezek változása gyakori, és a projekt méretét is növelheti.</p> Signup and view all the answers

Hogyan lehet interaktív módon indítani egy Docker konténert?

<p>A <code>-it</code> paraméter hozzáadásával a <code>docker run</code> parancshoz.</p> Signup and view all the answers

Miért számít a verziókövető számára előnyösnek a deszkriptor állomány használata?

<p>A deszkriptor állomány biztosítja, hogy minden fejlesztő ugyanazokat a függőségeket és build folyamatokat használja a projekt során.</p> Signup and view all the answers

Flashcards

Docker exec

Új folyamatot indít a futó konténerben a bash vagy sh parancs segítségével.

Docker volume

Perzisztens adatok, osztott mappák a host és konténer között.

read-only volume

Volume, amit a konténer csak olvashat, írni nem tud rá.

Docker hálózatok

Virtuális hálózatok, ahol konténerek kommunikálhatnak egymással.

Signup and view all the flashcards

Host IP cím

A hoszt gép IP címe, amely a konténerekkel kommunikál.

Signup and view all the flashcards

JAR állomány futtatása

A JAR (Java ARchive) állomány futtatásához a 'java -jar' parancsot használjuk.

Signup and view all the flashcards

Automatizált build

A build folyamat automatizálása segít az ismétlődő feladatok végrehajtásában és a hibák csökkentésében.

Signup and view all the flashcards

Függőségkezelés

A külső könyvtárak és keretrendszerek beépítése és nyomon követése a projektekben.

Signup and view all the flashcards

Makefile

A Make eszközhöz tartozó leíró fájl, amely a build folyamatot definiálja.

Signup and view all the flashcards

Verziókövetés

A projektek során használt verziók nyomon követése és kezelése.

Signup and view all the flashcards

Automatizált tesztelés

A tesztelési folyamat automatizálása a hibák korai észlelésére.

Signup and view all the flashcards

Dependency management tools

Olyan eszközök, mint Maven és Gradle, amelyek segítenek a függőségek kezelésében.

Signup and view all the flashcards

Kompilált vs nem kompilált nyelvek

A kompilált nyelvek esetén a build és a függőségkezelés is fontos, míg a nem kompilált nyelveknél főleg a függőségkezelés van fókuszban.

Signup and view all the flashcards

Dockerfile

A Dockerfile egy szöveges fájl, amely utasításokat tartalmaz egy Docker-kép létrehozásához.

Signup and view all the flashcards

konténerek

A konténerek a szoftverek elszigetelt futtatási környezetét biztosítják, amely különböző rendszerekben egyformán működik.

Signup and view all the flashcards

mikroszervíz-architektúra

Egy szoftver-építési stílus, ahol a nagy projekteket kisebb, független szolgáltatásokra bontanak.

Signup and view all the flashcards

szuperszerviz

A szuperszerviz fogalma a mikroszervíz-architektúrákban használt, együttműködő szolgáltatások összességét jelenti.

Signup and view all the flashcards

skálázhatóság

A skálázhatóság a rendszerek kapacitásának növelését jelenti, hogy maximálisan kihasználják a rendelkezésre álló erőforrásokat.

Signup and view all the flashcards

Docker Compose

Több Docker konténer beállítására és karbantartására alkalmas eszköz.

Signup and view all the flashcards

docker-compose.yml

A Docker Compose konfigurációs fájlja, YAML szintaxissal.

Signup and view all the flashcards

services

Szolgáltatások listája a docker-compose.yml fájlban.

Signup and view all the flashcards

container_name

A létrehozott konténer neve, opcionális beállítás.

Signup and view all the flashcards

restart

Beállítja, hogy a konténert automatikusan újraindítsa a rendszer.

Signup and view all the flashcards

docker compose up

Létrehozza és elindítja az összes konténert.

Signup and view all the flashcards

docker compose down

Lezárja a rendszert, leállítva a konténereket.

Signup and view all the flashcards

docker compose logs

Megjeleníti a konténerek logjait.

Signup and view all the flashcards

Docker image

Egy kész, futtatható szoftver környezet, amely tartalmazza az operációs rendszert és alkalmazásokat.

Signup and view all the flashcards

docker image pull

Egy Docker image letöltése a megfelelő registry-ből.

Signup and view all the flashcards

docker image push

Egy Docker image feltöltése a registry-be.

Signup and view all the flashcards

docker image ls

Lista a helyi gépen található Docker image-ekről.

Signup and view all the flashcards

docker run

Konténer létrehozása és elindítása egy megadott image-ből.

Signup and view all the flashcards

docker container ls

Futó konténerek listázása a helyi gépen.

Signup and view all the flashcards

docker container logs

Egy konténer által generált konzol kimenetek megjelenítése.

Signup and view all the flashcards

docker image tag

Címkék hozzárendelése egy meglévő Docker image-hez.

Signup and view all the flashcards

docker image build

Dockerfile alapján új Docker image építése.

Signup and view all the flashcards

GitLab CI

A GitLab saját folyamatos integrációs rendszere.

Signup and view all the flashcards

Pipeline

Minden pushkor induló folyamat, amely jobokból és stage-ekből áll.

Signup and view all the flashcards

Stage

Egy pipeline része, amely egy vagy több jobot tartalmaz.

Signup and view all the flashcards

Job

Egy teendő lefuttatására alkalmas egység, mint pl. buildelés vagy tesztelés.

Signup and view all the flashcards

Függőség a jobok között

Egy stage-ben lévő jobok párhuzamosan futnak, de sikereseknek kell lenniük a következő stage-hez.

Signup and view all the flashcards

.gitlab-ci.yml

A fájl, amellyel a CI konfigurálódik a tároló gyökerében.

Signup and view all the flashcards

Környezeti változók

Beállítotti változók a projektről és a futásról, mint pl. CI_REPOSITORY_URL.

Signup and view all the flashcards

Alapértelmezett környezeti változók

Környezet sajátosságait leíró változók, amelyeket a GitLab biztosít.

Signup and view all the flashcards

Manuális jobok

Jobok, amelyek kézzel indíthatóak a GitLab felületéről.

Signup and view all the flashcards

Feldolgozási sorrend

A stage-ek és jobok végrehajtásának szigorú sorrendje.

Signup and view all the flashcards

Study Notes

Szoftvermérnöki verziókövetés: git & git flow

  • A verziókövetés csoportok közös kódbázisához, kód megosztásához, vizsgálatához és karbantartásához hasznos.
  • Biztosítja a biztonsági mentéseket.
  • A legelterjedtebb verziókövetők: git, mercurial, SVN

Tárolók (repository-k)

  • A változásokat nyomon követő mappa.
  • Minden állapotot elment.
  • A fejlesztéshez szükséges fájlok: forráskód, dokumentáció, erőforrások, képek, stb.
  • Nem minden fájl van nyomon követve (pl.: bináris, külső könyvtárak).
  • Lokális és távoli tárolók egyaránt létezhetnek.
  • A lokális tároló a felhasználó számítógépén található.
  • A távoli tároló egy külső szerveren található.

Centralizált verziókövető rendszerek

  • A változásokat egy központi szerveren tárolják.
  • Csak a központi szerveren történik biztonsági mentés.
  • Hátrány: egyetlen ponton történik a biztonsági mentés, így a hálózati kapcsolat kiesése esetén a munka elveszhet.
  • Példa: SVN

Szétosztott verziókövető rendszerek

  • A változásokat több távoli szerveren tárolják.
  • Minden felhasználónak saját lokális tárolója van, ami a szerveren található teljes verziókat tartalmazza.
  • Nem szükséges állandó hálózati kapcsolat.
  • Példa: git, mercurial

Git

  • Linus Torvalds fejlesztette.
  • Parancssorból működik (<parancs1> <parancs2>... formában).
  • Az aktuális verzió lekéréséhez a git version parancsot használhatjuk.
  • Támogatott a parancssori és felhasználói felületen keresztüli használat.
  • A GitKraken, SourceTree grafikus felületeket nyújt a használatához.
  • Windows alatt szimulált parancssori környezetet nyújt a Git Bash.

.gitignore

  • A git figyelmen kívül hagyható fájlok listája.
  • Soronként állományneveket és/vagy szűrőket tartalmaz.
  • A tároló bármely részében elhelyezhető és érvényes az összes benne lévő almappa esetében.

Git tárolók inicializálása

  • Kód inicializálása lokális tárolóként.
  • Kezdő metaadatok létrehozása a .git almappában.
  • A git init parancs segítségével valósítható meg. A git clone parancs segítségével másolhatjuk egy távoli tárolót egy lokálisra

Beállítások

  • Git beállítások lokális, felhasználó és rendszerszintű tárolóban.
  • Például user.name, user.email és a lokális tároló specifikus beállítások.

Külső tárolók karbantartása

  • A git tároló szinkronban tartható külső tárolókkal (remote-ok).
  • A remote név opcionális.
  • Például URL vagy másik lokális mappa.
  • A remote-ok menedzseléséhez a git remote parancs használatos (pl.: git remote add <név> <url> vagy git remote -v

Változások modellezése: DAG (Directed Acyclic Graph)

  • A git által használt változások modellezésére szolgáló adatszerkezet.
  • A gráf csomópontjai a tároló állapotait (commits) képviselik.
  • A gráf élei a változások sorrendjét és függőségét mutatják.
  • Minden commithoz egyedi bináris azonosító (hash) van hozzárendelve és az ebből a hash-ből származtatott pointerek mutatják a commitot.

Változások feltöltése

  • A git add paranccsal hozzáadhatók a változtatások a staging area-hez (kézhez adandó).
  • A git commit -m string paranccsal küldjük el a változtatásokat a lokális tárolóba.
  • A változásokhoz üzenetet ("commit message") adunk.
  • A git push paranccsal tölthetjük fel a változtatásokat egy távoli tárolóra (pl. GitHub).

Változások letöltése

  • A git fetch paranccsal letölthetők a távoli tárolón lévő változtatások, de a lokális tárolóban a változások nem frissülnek.
  • A git pull parancs a fetch utáni merge-t végzi, hogy a távoli változások a lokális tárolóban is megjelenjenek.

További git parancsok

  • git status: az aktuális állapotról ad információt (mely állományok változtak az aktuális ágban; mely nem nyomonkövetve, stb.)
  • git diff: a változások részleteiből ad információt, megjeleníti hogyan változtak a fájlok.
  • git log: a commitok teljes listáját jeleníti meg.
  • --oneline, --graph: különböző megjelenítési módokat mutat a lognak

Összevonás (merge)

  • Két commit "előzmény"-ét egyesíti egy új merge commitba.
  • A merge commitnak két szülője van, a két összevont commit.
  • A merge kétféleképp történhet:
    • fast-forward merge: a célpont ág egyenesen a HEAD elágazásra mutat
    • általános merge: létrejön egy új commit a két szülő committel.

Elágazás (branching)

  • Egy új ág létrehozása a meglévő ágból.
  • Az alkalmazások külön részeinek fejlesztése párhuzamosan.
  • A git branch parancs segítségével listázhatjuk és létrehozhatjuk az ágakat.
  • Az aktuális ág váltásához a git checkout <branchName> parancs használható.

Clean & reset

  • A git clean parancs a nem követett fájlokat törli a lokális tárolóból (-xfd).
  • A git reset [mode] <target> paranccsal a HEAD pointert visszaállítja egy korábbi commitra.
  • Léteznek különböző módok (--soft, --mixed, --hard)

Git flow

  • A fejlesztéshez lehetséges konvencionális ágazási folyamat.
  • Egy-egy funkcionalitás elkülönített ágon fejlesztendő.
  • Végül az elkészült kódot a master ágba összevonják.

GitLab merge request

  • A GitLab rendszer részeként működik a merges hozzáadni-és elfogadni funkciója (egész koncepciója).
  • Különböző feltételek adhatóak meg a merge-hez, hogy melyik kritériumoknak kell megfelelnie.
  • A feladatok elvégzéséhez először a merge request -et hozzuk létre, Majd a hozzászólások elküldése után véglegesítjük.

Automatizált programok buildje és függőségkezelés: Maven, Gradle

  • Maven és Gradle automatizálják a build folyamatot, azaz a kód kompilálását, és a függőségekkezelést.
  • Felső szintű eszközökkel a build és a függőségek kezelése elvégezhető.
  • Leírási fájlok által definiált szabályok szerint a build történhet.

Groovy

  • Egy Java-alapú interpretált szkriptnyelv.
  • Egyszerűbb és olvashatóbb kódot biztosít.
  • Nem kell main függvény, elhagyhatók a pontosvesszők.

Gradle (és Maven)

  • Gitre feltölthető build leírások, melyek automatizálják a build feladatot a függőségek kezelésével együtt.
  • Van build leíró szabvány, melyek automatizáltan futtatják a programozási feladatait, és leírják a függőségeket (elágazás, stb.).

Docker, docker-compose

  • Virtuális gépek futtatásához és telepítéséhez szolgáló eszköz.
  • Képesek különálló szoftver-környezeteket biztosítani, melyek elkülönülnek a hoszt operációs rendszertől.
  • Kubernetes-hoz hasonló eszköz (de nem azonos).
  • Dockerfile szabvány segítségével az elkülönülő környezeteket létrehozhatjuk.
  • CMake és Make, vagy hasonló eszközök telepítésével automatizált built létrehozható, melyek a feladatot érvényessé teszik.

Folyamatos integráció: GitLab CI

  • Automatizált folyamatok fejlesztésére szolgáló eszköz.
  • A GitHub, BitBuckethez hasonlóan folyamatos integrációt és kitelepítést lehet létrehozni.
  • CI a kódtárolót a build és deployment lépésekkel kapcsolja össze.
  • jobok segítségével automatizálják a folyamatokat (build, testing).
  • pipeline: a feladataink sorozata és a stages futtatási sorrendjét definiálja, melyben egyes jobok függhetnek egymástól.

Szoftver architektúra

  • Magas szintű kép a szoftverrendszerről, mely a részek közötti kapcsolatot és interakciókat írja le.
  • A komponensek és azok kapcsolatának tervezése.
  • Leírt szabványok szerint különböző szoftver építési megoldások definiálhatók és használahatók.

Szoftver architektúra alapelvei

  • Skalálhatóság
  • Moduláris működés
  • Feladatok szétválasztása (Separation of Concerns, SoC)

Szoftver architektúra tervezési stílusok

  • Réteges architektúra (Layered Architecture, Monolith)
  • Kliensszerver architektúra (Client Server Architecture)
  • Mikroszolgáltatások architektúra (Microservices Architecture)
  • Eseményvezérelt architektúra (Event-Driven Architecture)

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Ez a kvíz a Docker használatáról és a mikroszolgáltatások architektúrájáról szól. Kérdések találhatók a Docker parancsok, volume-ok és hálózatok funkcióiról, valamint a konténerek előnyeiről a szoftverfejlesztésben. Teszteld tudásodat ezen a témán!

More Like This

Docker Container Management Commands
14 questions
Docker Basics Quiz
46 questions

Docker Basics Quiz

SuitableSerpentine avatar
SuitableSerpentine
Use Quizgecko on...
Browser
Browser