Tartalomjegyzék

🐳 Docker

👓 Fontosabb fogalmak

Dockerfile: Egy szöveges „recept”, ami leírja, hogyan kell felépíteni a konténerünket (milyen alaprendszerből induljon, milyen csomagokat telepítsen, milyen fájlokat másoljon be, milyen parancsot futtasson indításkor).

Image (Kép): A Dockerfile alapján létrehozott „sablon” vagy „tervrajz”. Ez tartalmaz mindent, ami az alkalmazás futtatásához kell. Nem változik. Maga a „becsomagolt” állapot.

Container (Konténer): Az Image-ből elindított, futó példány. Ez már egy élő, futó folyamat, amivel interakcióba lehet lépni. Egy Image-ből több Container-t is indíthatunk.

Docker Hub: Egy online „könyvtár” (registry), ahol rengeteg előre elkészített Image-t találhatunk (pl. web szerverekhez, adatbázisokhoz, programozási nyelvekhez).

👨🏼‍💻 Docker parancsok

📥 Telepítés

sudo apt install docker.io docker-compose-v2 -y

Felhasználó hozzáadása a docker csoporthoz
Így nem kell sudo a docker parancsok elé.

sudo groupadd docker
sudo usermod -aG docker $USER

Jelentkezz be újra a felhasználóval.


📐 Image kezelés

docker pull <image-neve>
docker image ls -a
docker rmi <image neve>

🧰 Konténer kezelés

docker container ls -a
docker ps
docker run --name <konténer neve> -d -p 8080:80 image-neve

ahol:

docker run: Parancs egy új konténer indítására.
–name <konténer neve>: Nevet adunk a konténernek (könnyebb hivatkozni rá).
-d (detach): A konténer a háttérben fusson, ne foglalja le a terminált.
-p 8080:80 (publish): Port átirányítás. Például a gépünk (host) 8080-as portjára érkező kéréseket irányítsa át a konténeren belül futó webszerver 80-as portjára (ez a HTTP alapértelmezett portja).
image-neve: Megadjuk, melyik image-ből induljon a konténer.)

docker stop <konténer neve>
docker rm <konténer neve>

🕵🏻‍♂️ Hibakeresés

docker container logs <konténer neve>

📜 Néhány egyszerű példa

OldalLeírásCímkék
Hello World Egyszerű docker image, ami kiírja a „Hello World” üzenetet a konzolra. <https://hub.docker.com/_/hello-world> sudo su Image letöltése docker pu…,
HTTPD - Apache webszerver Egyszerű 🌐 Apache2 webszerver <https://hub.docker.com/_/httpd> 80 sudo su Image letöltése docker pull httpd Konténer létrehozá…, ,
images-web-server A gép egy mappájába feltöltött képeket jeleníti meg böngészőben. <https://hub.docker.com/r/raerek/images-web-server> Ez a konténer egy webs…, ,
Nginx demo - Hello Egyszerű 🌐 Nginx webszerver, ami kiír néhány információt a szerverről. <https://hub.docker.com/r/nginxdemos/nginx-hello>sudo su Image letö…, ,

🧾 Docker Compose

Eddig minden konténert egy hosszú docker run paranccsal indítottunk. De mi van, ha például egy weboldalhoz egyszerre kell egy webszerver, egy adatbázis és egy PHP feldolgozó is? Három külön terminálablakban futtatnánk őket? Hogyan beszélgetnek egymással?

Erre a Docker Compose a megoldás. Ez az „Infrastructure as Code” (IaC) alapja: ahelyett, hogy parancsokat gépelnénk, egy szöveges fájlban (compose.yaml) írjuk le, hogyan nézzen ki a rendszerünk.

Előnyei:

További leírás: