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ő:
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¶
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¶
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¶
Ez elindítja az nginx, az alkalmazás és a PostgreSQL szolgáltatásokat, és biztosítja azok közötti kommunikációt.