Podcast
Questions and Answers
Hogyan különbözik a docker attach
és a docker exec
parancs használata?
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?
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?
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?
Mi a Docker hálózatok szerepe a konténerek kommunikációjában?
Signup and view all the answers
Milyen IP címet kap a hoszt gép a Docker hálózat létrehozásakor?
Milyen IP címet kap a hoszt gép a Docker hálózat létrehozásakor?
Signup and view all the answers
Mi a szerepe a COPY
utasításnak a Dockerfile-ban?
Mi a szerepe a COPY
utasításnak a Dockerfile-ban?
Signup and view all the answers
Miért előnyös a mikroszervíz-orientált architektúra használata?
Miért előnyös a mikroszervíz-orientált architektúra használata?
Signup and view all the answers
Milyen kommunikációs modelleket említenek a mikroszervizek interakciójára?
Milyen kommunikációs modelleket említenek a mikroszervizek interakciójára?
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?
Melyik Docker alapú képet használnak a Gradle alkalmazás futtatásához a megadott példa szerint?
Signup and view all the answers
Milyen előnyöket kínál a konténerek használata a modern szoftverfejlesztésben?
Milyen előnyöket kínál a konténerek használata a modern szoftverfejlesztésben?
Signup and view all the answers
Miért lehet nehezen karbantartható a hagyományos 'docker run' parancsok használata?
Miért lehet nehezen karbantartható a hagyományos 'docker run' parancsok használata?
Signup and view all the answers
Milyen fájlformátumban konfiguráljuk a docker-compose beállításokat?
Milyen fájlformátumban konfiguráljuk a docker-compose beállításokat?
Signup and view all the answers
Mit jelent az 'environment' rész a docker-compose.yml fájlban?
Mit jelent az 'environment' rész a docker-compose.yml fájlban?
Signup and view all the answers
Milyen parancsot használunk az összes konténer létrehozására és indítására?
Milyen parancsot használunk az összes konténer létrehozására és indítására?
Signup and view all the answers
Mit tesz a 'docker compose down' parancs?
Mit tesz a 'docker compose down' parancs?
Signup and view all the answers
Hogy használjuk a docker-compose parancsokat egy adott szolgáltatásra?
Hogy használjuk a docker-compose parancsokat egy adott szolgáltatásra?
Signup and view all the answers
Mire használjuk a 'docker compose logs' parancsot?
Mire használjuk a 'docker compose logs' parancsot?
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?
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?
Signup and view all the answers
Mi a GitLab CI funkciója?
Mi a GitLab CI funkciója?
Signup and view all the answers
Hogyan kezdődik egy pipeline a GitLab CI-ben?
Hogyan kezdődik egy pipeline a GitLab CI-ben?
Signup and view all the answers
Mik azok a stage-ek a GitLab CI rendszerében?
Mik azok a stage-ek a GitLab CI rendszerében?
Signup and view all the answers
Mit jelent a job a GitLab CI-ben?
Mit jelent a job a GitLab CI-ben?
Signup and view all the answers
Mi történik, ha egy job a GitLab CI-ben sikertelen?
Mi történik, ha egy job a GitLab CI-ben sikertelen?
Signup and view all the answers
Miből áll egy .gitlab-ci.yml fájl?
Miből áll egy .gitlab-ci.yml fájl?
Signup and view all the answers
Milyen típusú Docker image-eket használhatunk job-okhoz?
Milyen típusú Docker image-eket használhatunk job-okhoz?
Signup and view all the answers
Mik azok a környezeti változók a GitLab CI-ben?
Mik azok a környezeti változók a GitLab CI-ben?
Signup and view all the answers
Mivel konfigurálható a GitLab CI?
Mivel konfigurálható a GitLab CI?
Signup and view all the answers
Hogyan lehet manuálisan indítani job-okat a GitLab CI-ben?
Hogyan lehet manuálisan indítani job-okat a GitLab CI-ben?
Signup and view all the answers
Milyen parancsot használunk egy Docker image letöltésére?
Milyen parancsot használunk egy Docker image letöltésére?
Signup and view all the answers
Mi a funkciója a docker image tag
parancsnak?
Mi a funkciója a docker image tag
parancsnak?
Signup and view all the answers
Mit csinál a docker container ls
parancs?
Mit csinál a docker container ls
parancs?
Signup and view all the answers
Milyen paraméterrel indíthatunk egy Docker konténert háttérben?
Milyen paraméterrel indíthatunk egy Docker konténert háttérben?
Signup and view all the answers
Miért fontos a build rendszerek használata a szoftverfejlesztés során?
Miért fontos a build rendszerek használata a szoftverfejlesztés során?
Signup and view all the answers
Mi a Makefile szerepe a fejlesztési folyamatokban?
Mi a Makefile szerepe a fejlesztési folyamatokban?
Signup and view all the answers
Miért nem migrálhatók a Docker konténerek gépről gépre?
Miért nem migrálhatók a Docker konténerek gépről gépre?
Signup and view all the answers
Milyen előnyei vannak az automatizált tesztelésnek a szoftverfejlesztésben?
Milyen előnyei vannak az automatizált tesztelésnek a szoftverfejlesztésben?
Signup and view all the answers
Milyen legacy variánsa van a docker image push
parancsnak?
Milyen legacy variánsa van a docker image push
parancsnak?
Signup and view all the answers
Hogyan lehet eltávolítani egy Docker image-t?
Hogyan lehet eltávolítani egy Docker image-t?
Signup and view all the answers
Miért fontos a megfelelő verziójú külső könyvtárak használata a projektekben?
Miért fontos a megfelelő verziójú külső könyvtárak használata a projektekben?
Signup and view all the answers
Milyen eszközők állnak rendelkezésre Java környezetben a függőségkezeléshez?
Milyen eszközők állnak rendelkezésre Java környezetben a függőségkezeléshez?
Signup and view all the answers
Mit jelent a --rm
flag a docker run
parancsban?
Mit jelent a --rm
flag a docker run
parancsban?
Signup and view all the answers
Milyen parancsot használunk egy már futó konténerhez való parancsfuttatásra?
Milyen parancsot használunk egy már futó konténerhez való parancsfuttatásra?
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?
Mik az alapvető különbségek a build automatizálás és a függőségkezelés között?
Signup and view all the answers
Miért nem tárolják a függőségeket a verziókövető rendszerekben?
Miért nem tárolják a függőségeket a verziókövető rendszerekben?
Signup and view all the answers
Hogyan lehet interaktív módon indítani egy Docker konténert?
Hogyan lehet interaktív módon indítani egy Docker konténert?
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?
Miért számít a verziókövető számára előnyösnek a deszkriptor állomány használata?
Signup and view all the answers
Flashcards
Docker exec
Docker exec
Új folyamatot indít a futó konténerben a bash vagy sh parancs segítségével.
Docker volume
Docker volume
Perzisztens adatok, osztott mappák a host és konténer között.
read-only volume
read-only volume
Volume, amit a konténer csak olvashat, írni nem tud rá.
Docker hálózatok
Docker hálózatok
Signup and view all the flashcards
Host IP cím
Host IP cím
Signup and view all the flashcards
JAR állomány futtatása
JAR állomány futtatása
Signup and view all the flashcards
Automatizált build
Automatizált build
Signup and view all the flashcards
Függőségkezelés
Függőségkezelés
Signup and view all the flashcards
Makefile
Makefile
Signup and view all the flashcards
Verziókövetés
Verziókövetés
Signup and view all the flashcards
Automatizált tesztelés
Automatizált tesztelés
Signup and view all the flashcards
Dependency management tools
Dependency management tools
Signup and view all the flashcards
Kompilált vs nem kompilált nyelvek
Kompilált vs nem kompilált nyelvek
Signup and view all the flashcards
Dockerfile
Dockerfile
Signup and view all the flashcards
konténerek
konténerek
Signup and view all the flashcards
mikroszervíz-architektúra
mikroszervíz-architektúra
Signup and view all the flashcards
szuperszerviz
szuperszerviz
Signup and view all the flashcards
skálázhatóság
skálázhatóság
Signup and view all the flashcards
Docker Compose
Docker Compose
Signup and view all the flashcards
docker-compose.yml
docker-compose.yml
Signup and view all the flashcards
services
services
Signup and view all the flashcards
container_name
container_name
Signup and view all the flashcards
restart
restart
Signup and view all the flashcards
docker compose up
docker compose up
Signup and view all the flashcards
docker compose down
docker compose down
Signup and view all the flashcards
docker compose logs
docker compose logs
Signup and view all the flashcards
Docker image
Docker image
Signup and view all the flashcards
docker image pull
docker image pull
Signup and view all the flashcards
docker image push
docker image push
Signup and view all the flashcards
docker image ls
docker image ls
Signup and view all the flashcards
docker run
docker run
Signup and view all the flashcards
docker container ls
docker container ls
Signup and view all the flashcards
docker container logs
docker container logs
Signup and view all the flashcards
docker image tag
docker image tag
Signup and view all the flashcards
docker image build
docker image build
Signup and view all the flashcards
GitLab CI
GitLab CI
Signup and view all the flashcards
Pipeline
Pipeline
Signup and view all the flashcards
Stage
Stage
Signup and view all the flashcards
Job
Job
Signup and view all the flashcards
Függőség a jobok között
Függőség a jobok között
Signup and view all the flashcards
.gitlab-ci.yml
.gitlab-ci.yml
Signup and view all the flashcards
Környezeti változók
Környezeti változók
Signup and view all the flashcards
Alapértelmezett környezeti változók
Alapértelmezett környezeti változók
Signup and view all the flashcards
Manuális jobok
Manuális jobok
Signup and view all the flashcards
Feldolgozási sorrend
Feldolgozási sorrend
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. Agit 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>
vagygit 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 aHEAD
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 aHEAD
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.
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!