diff --git a/README.md b/README.md index 7e8d14c..85f7b21 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Docker gyakorlati példák +Képzési anyag a Docker használatához. + +Ha elakadtál, vagy kérdésed vanm, írj nekünk a [Hibajelenség / Kérdés](https://github.com/cloudsteak/mentor-klub-cloud/issues/new/choose) + ## Tartalomjegyzék - [Docker alapok](#docker-alapok) @@ -19,13 +23,10 @@ - [DevOps CI/CD pipeline alkalmazása](#devops-cicd-pipeline-alkalmazása) - [Azure Webalkalmazás létrehozása Docker képből](#azure-webalkalmázás-létrehozása-docker-képből) - Példák: - - [Kód 1 - Alap python példa](./Kod1/kod1.md) - - [Kód 2 - API példa](./Kod2/README.md) - - [Kód 3 - Docker Compose példa (web + sql)](./Kod3/README.md) - - [Kód 4 - Webalkalmazás példa](./Kod4/README.md) - - -Képzési anyag a Docker használatához. + - [Kód 1 - Alap python példa](./Kod1/kod1.md) + - [Kód 2 - API példa](./Kod2/README.md) + - [Kód 3 - Docker Compose példa (web + sql)](./Kod3/README.md) + - [Kód 4 - Webalkalmazás példa](./Kod4/README.md) ## Docker alapok @@ -33,32 +34,31 @@ A Docker egy innovatív eszköz, amely segít a fejlesztőknek és rendszergazd - **Miért Docker?** - - **Konzisztencia**: A Docker garantálja, hogy az alkalmazás ugyanúgy fut minden környezetben, legyen szó fejlesztői gépről vagy termelési környezetről. - - **Izoláció**: Minden konténer izoláltan működik, így a szoftverek kölcsönös zavarása nélkül futtathatók. - - **Biztonság**: Az izoláció révén a Docker javítja az alkalmazások biztonságát, mivel a konténerek korlátozzák a hozzáférést és erőforrás-használatot. - - **Skálázhatóság és menedzsment**: A Docker lehetővé teszi az alkalmazások könnyű skálázását és kezelését, ami ideálissá teszi őket mikroszolgáltatások architektúrájában. + - **Konzisztencia**: A Docker garantálja, hogy az alkalmazás ugyanúgy fut minden környezetben, legyen szó fejlesztői gépről vagy termelési környezetről. + - **Izoláció**: Minden konténer izoláltan működik, így a szoftverek kölcsönös zavarása nélkül futtathatók. + - **Biztonság**: Az izoláció révén a Docker javítja az alkalmazások biztonságát, mivel a konténerek korlátozzák a hozzáférést és erőforrás-használatot. + - **Skálázhatóság és menedzsment**: A Docker lehetővé teszi az alkalmazások könnyű skálázását és kezelését, ami ideálissá teszi őket mikroszolgáltatások architektúrájában. - **Alapvető fogalmak** - - **Docker képfájlok**: A Docker képek a szoftvercsomagok állóképei, amelyek tartalmazzák az alkalmazások futtatásához szükséges minden fájlt és könyvtárat. - - **Konténerek**: Az indított Docker képekből létrehozott futtatható példányok, amelyek tartalmazzák az alkalmazást és annak futtatásához szükséges környezetet. - - **Docker Hub**: A Docker saját registry-je, ahol a fejlesztők feltölthetik és letölthetik a különböző Docker képeket. + - **Docker képfájlok**: A Docker képek a szoftvercsomagok állóképei, amelyek tartalmazzák az alkalmazások futtatásához szükséges minden fájlt és könyvtárat. + - **Konténerek**: Az indított Docker képekből létrehozott futtatható példányok, amelyek tartalmazzák az alkalmazást és annak futtatásához szükséges környezetet. + - **Docker Hub**: A Docker saját registry-je, ahol a fejlesztők feltölthetik és letölthetik a különböző Docker képeket. A Docker alapos megértése kulcsfontosságú a modern szoftverfejlesztési és telepítési folyamatokban. Reméljük, ez a rövid bevezető segít megérteni a Docker alapjait és előnyeit, ami alapozza majd a további mélyebb ismeretek elsajátítását. - ## Docker Desktop telepítése Telepítési link (Mac, Linux, Windows): https://www.docker.com/products/docker-desktop - **Miért Docker Desktop?** - - Egyszerűen telepíthető - - Minden szükséges komponenst feltelepít - - Erőforrásszükséglet a futtató géphez szabható - - Teljes Docker funkcionalitás (images, DockerHub) - - Helyi Kubernetes (K8s) szerver - - Kiegészítők (monitorozás, egyéb cluster megoldások) + - Egyszerűen telepíthető + - Minden szükséges komponenst feltelepít + - Erőforrásszükséglet a futtató géphez szabható + - Teljes Docker funkcionalitás (images, DockerHub) + - Helyi Kubernetes (K8s) szerver + - Kiegészítők (monitorozás, egyéb cluster megoldások) ## Docker parancsok @@ -67,7 +67,6 @@ Telepítési link (Mac, Linux, Windows): https://www.docker.com/products/docker- - `docker ps`: Megjeleníti az aktív konténereket. - `docker stop `: Megállít egy futó konténert. - - Verzió: ```bash @@ -116,14 +115,14 @@ docker rm {konténer azonosító} docker rm {konténer azonosító} --force ``` - - Image építése Dockerfile alapján: ```bash docker build --tag {namespace vagy author}/{image neve}:{verzió} . ``` -Megjegyzés: +Megjegyzés: + - Ha az image fájlt Apple Silicon processzoros gépen készítem, de utána Intel processzoros gépen használom, akkor a fenti parancshoz adjuk hozzá ezt: `--platform linux/amd64` - Több platformos build: `docker buildx build --tag {kép neve címkével} --push . --platform linux/amd64,linux/arm64,linux/arm/v7` @@ -141,7 +140,8 @@ docker inspect {konténer azonosító} docker logs {konténer azonosító} ``` -Megjegyzés: +Megjegyzés: + - Ha a naplót folyamatosan szeretnénk látni, akkor használjuk a `-f` kapcsolót: `docker logs -f {konténer azonosító}` ## Konténer indítása, leállítása @@ -180,7 +180,6 @@ docker exec -it {konténer azonosító} bash docker exec {konténer azonosító} {parancs} ``` - ## Képek kezelése (letöltés, címkézés) ### Docker kép letöltése @@ -224,7 +223,6 @@ A `docker-compose.yml` fájlban definiálod a szükséges szolgáltatásokat, h _Megjegyzés: `docker compose up -d` kapcsolóval a konténerek a háttérben futnak._ - ### Indítás építéssel ```bash @@ -283,8 +281,6 @@ az acr login --name {ACR név} az acr update -n {ACR név} --admin-enabled true ``` - - ### Docker kép feltöltése az ACR-be 1. Bejelentkezés az ACR-be: @@ -332,7 +328,6 @@ docker push {ACR név}.azurecr.io/{kép neve}:{verzió} 12. Kattintsunk a "Következő" gombra. 13. Kattintsunk a "Létrehozás" gombra. - ## DevOps CI/CD pipeline alkalmazása ### GitHub Actions Workflow @@ -376,7 +371,6 @@ Workflow fájlok (általában `.github/workflows` mappában található YAML fá - Name: ACR_PASSWORD - Secret: {az ACR password vagy password2} - ### ACR használata GitHub Actions-ben 1. Clone-ozzuk le a repository-t a gépünkre. @@ -385,15 +379,14 @@ Workflow fájlok (általában `.github/workflows` mappában található YAML fá 4. Készítsük el a megfelelő CI/CD pipeline-t a fájlban. (nem szükséges a teéjes folyamatot egy fájlban megvalósítani. Lehetséges, hogy egy nagy CI/CD folyamatot több fájlban valósítunk meg.) Példák: + - [.github/workflows/pelda.yml](/.github/workflows/pelda.yaml) - [.github/workflows](/.github/workflows) - ## Azure Webalkalmazás létrehozása Docker képből - Webalkalmazás létrehozásánál a Docker képet az Azure Container Registry-ből használjuk. Az Azure Webalkalmazás lehetővé teszi a konténerek gyors és egyszerű telepítését, skálázását és kezelését a felhőben. - Webalkalmazás módosítása - 1. Üzembehelyezési központban állítsuk át a `Folyamatos telepítés` értékés `Bekalcsolva`-ra. - 2. Konfiguráció > Általános beállítások > Mindig bekapcsolva: Be - + 1. Üzembehelyezési központban állítsuk át a `Folyamatos telepítés` értékés `Bekalcsolva`-ra. + 2. Konfiguráció > Általános beállítások > Mindig bekapcsolva: Be