Junior Rendszerüzemeltető Vizsgaportál

Ctrl+F-re és gyors gyakorlati keresésre optimalizált jegyzet.

Konténerizáció vizsga referencia - tartalomjegyzék

Gyakorlati Junior Rendszerüzemeltető vizsgához: Docker alapok, image, container, volume, network, Docker Compose és gyakorlati nginx, PostgreSQL, Node.js példák.

Gyors parancsreferencia

docker --version
docker ps
docker ps -a
docker images
docker pull nginx
docker run -d --name web -p 8080:80 nginx
docker logs web
docker exec -it web sh
docker stop web
docker start web
docker rm web
docker rmi nginx
docker volume ls
docker network ls
docker compose up -d
docker compose down

Vizsgán a leggyakoribb keresőszavak: image, container, Dockerfile, docker run, docker ps, docker logs, docker exec, volume, network, port mapping, docker compose.

1. Mi a konténerizáció?

A konténerizáció alkalmazások és függőségeik izolált futtatását jelenti közös operációs rendszer kernel felett. A konténer tartalmazza az alkalmazást, a szükséges csomagokat és konfigurációt, de nem tartalmaz teljes külön operációs rendszert úgy, mint egy virtuális gép.

Egyszerű kép

Fizikai vagy virtuális gép
  Operációs rendszer
    Docker Engine
      nginx konténer
      postgres konténer
      node.js konténer

Konténerekkel ugyanaz az alkalmazás könnyebben futtatható fejlesztői gépen, tesztkörnyezetben és szerveren.

2. Virtuális gépek vs konténerek

SzempontVirtuális gépKonténer
Izolációteljes vendég OS, erősebb izolációfolyamat szintű izoláció közös kernellel
Indulási időlassabb, OS boot szükségesgyors, gyakran másodpercek alatt indul
Erőforrásigénynagyobb CPU/RAM/tárhely igénykisebb overhead
OS kernelminden VM saját kernelt futtathost kernelét használja
Tipikus használatteljes szerverek, eltérő OS-ekalkalmazások és mikroszolgáltatások

Konténer nem egyenlő virtuális géppel. A konténer könnyebb és gyorsabb, de a kernel közös a hosttal.

3. Előnyök és hátrányok

Előnyök

  • Gyors indítás és leállítás.
  • Egységes futtatási környezet fejlesztésben és szerveren.
  • Kisebb erőforrásigény, mint a teljes VM-eknél.
  • Egyszerűbb alkalmazáscsomagolás és terítés image-ekkel.
  • Docker Compose segítségével több szolgáltatás együtt indítható.

Hátrányok

  • Nem helyettesít minden esetben teljes virtuális gépet.
  • Állapot nélküli működés miatt adatkezeléshez volume kell.
  • Rossz image vagy jogosultság biztonsági kockázat lehet.
  • Hálózati és port mapping hibák gyakoriak kezdőknél.
  • Logolás, mentés és frissítés tudatos tervezést igényel.

4. Docker architektúra

KomponensJelentés
Docker Clienta docker parancs, amivel utasításokat adsz
Docker Daemona háttérben futó szolgáltatás, amely konténereket és image-eket kezel
Docker Enginea Docker kliens, daemon és futtatókörnyezet együtt
Imagefuttatható sablon, amelyből konténer indul
Containerimage-ből indított futó vagy leállított példány
Registryimage-ek tárolóhelye, például Docker Hub

Folyamat

docker pull nginx
  -> image letöltése registryből

docker run nginx
  -> container indítása image-ből

5. Image-ek

Az image csak olvasható sablon, amely tartalmazza az alkalmazás futtatásához szükséges fájlokat, függőségeket és beállításokat.

docker images
docker pull nginx
docker pull postgres:16
docker pull node:20-alpine
docker rmi nginx

Tag

A tag verziót vagy változatot jelöl: nginx:latest, postgres:16, node:20-alpine.

Éles vagy vizsga reprodukálható környezetben jobb konkrét taget használni, mint mindig latest-et.

6. Konténerek

A container egy image-ből létrehozott futó vagy leállított példány. A konténer saját folyamatokkal, fájlrendszer-réteggel, hálózattal és környezeti változókkal rendelkezhet.

nginx konténer példa

docker run -d --name web -p 8080:80 nginx
docker ps
curl http://localhost:8080
docker logs web
docker stop web
docker rm web

Belépés konténerbe

docker exec -it web sh
docker exec -it web bash

Az -it interaktív terminált ad. Alpine alapú image-ekben gyakran sh van, nem bash.

7. Registry-k

A registry image-ek tárolására és megosztására szolgál. Innen töltesz le image-et, és ide tölthetsz fel saját image-et.

Registry típusPéldaMegjegyzés
PublikusDocker Hubsok nyilvános image
PrivátGitLab Container Registry, Harbor, ECRvállalati saját image-ekhez
docker login
docker pull nginx
docker tag sajat-app:1.0 felhasznalo/sajat-app:1.0
docker push felhasznalo/sajat-app:1.0

8. Docker Hub

A Docker Hub a legismertebb publikus Docker registry. Itt találhatók hivatalos image-ek, például nginx, postgres, node, ubuntu.

Vizsgán hasznos image-ek

ImageMire jó?Példa
nginxwebszerverdocker run -p 8080:80 nginx
postgresPostgreSQL adatbázisPOSTGRES_PASSWORD kell
nodeNode.js futtatókörnyezetnode:20-alpine

9. Volumes

A volume tartós adattárolásra való. Ha egy konténert törölsz, a konténer belső írható rétege elveszhet, de a volume megmarad.

Postgres volume példa

docker volume create pgdata

docker run -d --name pg `
  -e POSTGRES_PASSWORD=Password123 `
  -v pgdata:/var/lib/postgresql/data `
  -p 5432:5432 `
  postgres:16

docker volume ls
docker volume inspect pgdata

Bind mount példa nginxhez

mkdir -p ./html
echo "Vizsga nginx oldal" > ./html/index.html
docker run -d --name web -p 8080:80 -v "$PWD/html:/usr/share/nginx/html:ro" nginx

Adatbázis konténerhez szinte mindig kell volume, különben konténer törlésekor adatvesztés lehet.

10. Hálózatok

A Docker hálózatok konténerek közötti kommunikációt és port publikálást kezelnek. Alapból a konténerek bridge hálózaton futnak.

HálózatJelentésMikor hasznos?
bridgealap konténerhálózat egy hostonáltalános konténer-kommunikáció
hosta konténer a host hálózatát használjaspeciális teljesítmény vagy hálózati igény
nonenincs hálózatelszigetelt futtatás

Saját bridge hálózat

docker network create vizsga-net
docker run -d --name web --network vizsga-net nginx
docker network ls
docker network inspect vizsga-net

Port mapping

docker run -d --name web -p 8080:80 nginx

Jelentés:
host port 8080 -> konténer port 80
böngésző: http://localhost:8080

11. Gyakori Docker parancsok

ParancsJelentés
docker psfutó konténerek listája
docker ps -aösszes konténer, leállítottak is
docker imageshelyi image-ek listája
docker pull IMAGEimage letöltése registryből
docker runkonténer létrehozása és indítása
docker stop NAMEkonténer leállítása
docker start NAMEleállított konténer indítása
docker rm NAMEkonténer törlése
docker rmi IMAGEimage törlése
docker logs NAMEkonténer naplója
docker exec -it NAME shinteraktív shell konténerben
docker inspect NAMErészletes objektuminformáció

12. Docker Compose

A Docker Compose több konténerből álló alkalmazás leírására és indítására szolgál YAML fájlban. Tipikus példa: webalkalmazás + adatbázis.

docker compose version
docker compose up -d
docker compose ps
docker compose logs
docker compose logs -f
docker compose down
docker compose down -v

docker compose down leállítja és törli a compose által létrehozott konténereket/hálózatot. A -v a volume-okat is törölheti, ezért adatbázisnál óvatosan.

13. Példa docker-compose.yml

Az alábbi példa három gyakori vizsgatémát kapcsol össze: nginx, PostgreSQL és Node.js. A Node.js alkalmazás a ./app mappából épül, az nginx publikus portja 8080.

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    depends_on:
      - app

  app:
    image: node:20-alpine
    working_dir: /app
    volumes:
      - ./app:/app
    command: sh -c "npm install && node server.js"
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_DB: vizsga
      POSTGRES_USER: vizsga
      POSTGRES_PASSWORD: Password123
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  pgdata:

Indítás és teszt

docker compose up -d
docker compose ps
curl http://localhost:8080
curl http://localhost:3000
docker compose logs db

14. Konténer életciklus

ÁllapotJelentésParancs
Createdkonténer létrejött, de nem futdocker create
Runningkonténer futdocker run, docker start
Pausedfolyamatok szüneteltetvedocker pause
Stopped / Exitedkonténer leálltdocker stop
Removedkonténer törölvedocker rm

Tipikus életciklus

docker pull nginx
docker run -d --name web -p 8080:80 nginx
docker logs web
docker stop web
docker start web
docker rm -f web

15. Gyakori vizsgakérdések

KérdésRövid válasz
Mi a konténer?Image-ből indított izolált alkalmazásfolyamat saját környezettel.
Mi az image?Futtatható sablon, amelyből konténer indul.
Mi a registry?Image-ek tárolóhelye, például Docker Hub.
Mi a Docker Hub?Publikus Docker registry sok hivatalos image-dzsel.
Mire jó a volume?Tartós adattárolásra konténer törlése után is.
Mit jelent a -p 8080:80?Host 8080 portja a konténer 80 portjára továbbít.
Mi a Docker Compose?Több konténeres alkalmazás YAML alapú leírása és indítása.
Miért áll le rögtön egy konténer?A fő folyamat befejeződött vagy hibával kilépett; nézd meg: docker logs.
Mi a különbség VM és konténer között?VM teljes vendég OS-t futtat, konténer közös kernelt használ.

16. Gyors parancsreferencia

nginx

docker run -d --name nginx-web -p 8080:80 nginx
curl http://localhost:8080
docker logs nginx-web
docker rm -f nginx-web

PostgreSQL

docker volume create pgdata
docker run -d --name postgres-db `
  -e POSTGRES_PASSWORD=Password123 `
  -e POSTGRES_DB=vizsga `
  -e POSTGRES_USER=vizsga `
  -v pgdata:/var/lib/postgresql/data `
  -p 5432:5432 `
  postgres:16
docker logs postgres-db

Node.js

docker run --rm -it node:20-alpine node --version
docker run --rm -it -v "$PWD/app:/app" -w /app node:20-alpine sh
npm install
node server.js

Takarítás

docker ps -a
docker rm -f CONTAINER_NAME
docker image prune
docker volume prune
docker network prune