Felhasználói eszközök

Eszközök a webhelyen


virtualizacio:kontenerek:docker

🐳 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 image letöltése
docker pull <image-neve>
  • Letöltött Image-k listázása
docker image ls -a
  • Image törlése
docker rmi <image neve>

🧰 Konténer kezelés

  • Minden konténer listázása
docker container ls -a
  • Csak a futó konténerek listázása
docker ps
  • Konténer futtatása
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.)

  • Konténer leállítása
docker stop <konténer neve>
  • Konténer törlése
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:

  • Reprodukálható: A fájlt átküldöd a társadnak, beírja, hogy docker compose up, és ugyanaz fut nála is.
  • Átlátható: Egy fájlban látod a teljes architektúrát.
  • Hálózatkezelés: Automatikusan létrehoz egy belső hálózatot, ahol a konténerek a nevük alapján megtalálják egymást.

További leírás:


virtualizacio/kontenerek/docker.txt · Utolsó módosítás: szerkesztette: fm