Felhasználói eszközök

Eszközök a webhelyen


virtualizacio:kontenerek:docker-compose

🧾 Docker Compose

👓 Áttekintés

Eddig minden 🐳 Docker konténert egy hosszú docker run paranccsal indítottunk.

De mi van, ha például egy weboldalhoz 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.

📥 Telepítés

# Ha már telepítetted a dockert.
sudo apt install docker-compose-v2 -y
 
# Dockerrel együtt
sudo apt install docker.io docker-compose-v2 -y

⚙️ Konfiguráció

A Docker Compose YAML formátumot használ (fontos a behúzás/indentálás!).

Hozz létre egy mappát, benne egy compose.yaml fájllal. Egy tipikus compose.yaml fájl szerkezete:

services:           # Itt soroljuk fel a konténereket
  webszerver:       # 1. szolgáltatás neve (ez lesz a hálózati neve is!)
    image: nginx    # Miből készüljön?
    ports:
      - "8080:80"   # Port átirányítás (Host:Container)
  
  adatbazis:        # 2. szolgáltatás neve
    image: mysql
    environment:    # Környezeti változók
      MYSQL_ROOT_PASSWORD: titkosjelszo

👨🏼‍💻 Legfontosabb parancsok

A parancsokat abban a könyvtárban kell kiadni, ahol a compose.yaml (vagy régebben docker-compose.yml) fájl van.

Parancs Leírás
docker compose up -d Elindítja a rendszert a háttérben (Detached). Ha nincs meg az image, letölti.
docker compose down Leállítja és törli a konténereket és a hálózatot.
docker compose stop Csak megállítja a konténereket (nem törli őket).
docker compose ps Listázza az éppen futó szolgáltatásokat.
docker compose logs -f Folyamatosan mutatja az összes konténer logját (kilépés: Ctrl+C).
docker compose exec [service] bash Belépés egy futó konténerbe (pl. docker compose exec webszerver bash).

Régebbi Docker verzióknál a parancs docker-compose (kötőjellel). Az új verziókban már a docker compose (szóközzel) az ajánlott.

📜 Néhány bevett gyakorlat

Jelszavak kezelése (.env fájl)

Soha ne írj jelszavakat közvetlenül a YAML fájlba, ha azt git-ben vagy megosztott helyen tárolod! Használj .env fájlt.

1. Hozz létre egy .env fájlt:

DB_USER=wordpress
DB_PASSWORD=szupertitkos

2. Hivatkozz rá a compose.yaml-ben:

environment:
  MYSQL_USER: ${DB_USER}
  MYSQL_PASSWORD: ${DB_PASSWORD}

Adatok megőrzése

Ha törlöd a konténert (down), az adatbázis tartalma is elveszik, hacsak nem használsz Volume-okat.

services:
  db:
    image: mysql
    volumes:
      - db_data:/var/lib/mysql  # elnevezett Volume használata

volumes:
  db_data:                      # Itt kell deklarálni a volume-ot

🥣 Kész Docker Compose fájlok

dockerc-adminer

OldalLeírásCímkék
Adminer + MariaDB Stack 🧾 Docker Compose recept MariaDB és Adminer webes kezelőfelület közös futtatására: két konténer, ami automatikusan látja egymást. 🥣 Elk…,
Portainer 🧾 Docker Compose recept egy 🐳 Docker felügyelő Portainer rendszerhez 🥣 Elkészítés Hozz létre egy mappát, benne egy compose.yaml fájllal: services…,
WordPress + MySQL Stack 🧾 Docker Compose recept Wordpress és MySQL adatbázis közös futtatására: két konténer, ami automatikusan látja egymást. 🥣 Elkészítés H…,
virtualizacio/kontenerek/docker-compose.txt · Utolsó módosítás: szerkesztette: fm