Kihagyás

Konténerizáció

Docker

A Docker egy nyílt forráskódú platform, amely lehetővé teszi a fejlesztők számára, hogy alkalmazásokat konténerekben futtassanak. A konténerek könnyű, önálló futtatási környezetek, amelyek tartalmazzák az alkalmazás futtatásához szükséges összes függőséget.

Alapfogalmak

  • Image: Az alkalmazás és annak összes függősége egy csak olvasható sablonban, amit egy konténer futtatásához használunk.
  • Container: Egy futó példány egy image-ből. Egy konténer tartalmaz mindent, ami egy alkalmazás futtatásához szükséges.
  • Dockerfile: Egy szöveges fájl, amely tartalmazza az utasításokat egy Docker image létrehozásához.

Docker telepítése

Docker Desktop letöltése és telepítése Windows vagy MacOS rendszerekre.

Linux rendszerekre a következő parancsokkal telepíthető:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Alapvető Docker parancsok

  • docker pull: Image letöltése a Docker Hub-ról.
  • docker run: Konténer futtatása egy image-ből.
  • docker ps: Futtató konténerek listázása.
  • docker stop: Konténer leállítása.
  • docker rm: Konténer törlése.

Docker-Compose

A Docker-Compose egy eszköz, amely lehetővé teszi több konténeres alkalmazások definícióját és futtatását. Egy YAML fájlban (docker-compose.yml) határozzuk meg a szolgáltatásokat, hálózatokat és köteteket.

Docker-Compose alapfogalmak

  • Service: Egy alkalmazás konténere, amelyet a docker-compose.yml fájlban definiálunk.
  • Volume: Perzisztens tároló, amely megosztható a konténerek között.
  • Network: A szolgáltatások közötti kommunikációt biztosító hálózat.

docker-compose.yml példa

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: example

Docker-Compose parancsok

  • docker-compose up: A szolgáltatások elindítása a docker-compose.yml fájl alapján.
  • docker-compose down: A futó szolgáltatások leállítása és eltávolítása.
  • docker-compose ps: A futó szolgáltatások listázása.
  • docker-compose logs: A szolgáltatások naplóinak megtekintése.

Gyakorlati példa

docker-compose.yml fájl létrehozása

Több konténeres alkalmazás
version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    depends_on:
      - app
  app:
    image: my_app:latest
    build: ./app
    ports:
      - "5000:5000"
    volumes:
      - ./app:/usr/src/app
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Alkalmazás építése és futtatása

Dockerfile létrehozása az app számára

Dockerfile
FROM python:3.8-slim-buster
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

docker-compose.yml fájl futtatása

docker-compose up --build

Ez elindítja az nginx, az alkalmazás és a PostgreSQL szolgáltatásokat, és biztosítja azok közötti kommunikációt.