Junior
K čemu se používají kontejnery?
sobes.tech AI
Odpověď od AI
Kontejnery se používají k zabalení aplikace spolu se všemi jejími závislostmi (kód, knihovny, konfigurační soubory) do standardizovaného, izolovaného modulu, který může být spuštěn v jakémkoli prostředí. Hlavní cíle použití:
- Izolace: Každá aplikace běží v izolovaném prostředí, aniž by ovlivnila jiné aplikace nebo základní systém.
- Přenositelnost: Kontejner sestavený v jednom prostředí se zaručeně spustí a poběží stejně v jakémkoli jiném prostředí, kde je nainstalován kompatibilní kontejnerový engine (například Docker).
- Reprodukovatelnost: Prostředí běhu aplikace se stává deterministickým, což odstraňuje problém "funguje na mém stroji".
- Správa závislostí: Všechny potřebné knihovny a závislosti jsou zabaleny spolu s aplikací.
- Efektivní využití zdrojů: Kontejnery využívají zdroje lehčeji než virtuální stroje, protože sdílejí jádro operačního systému.
- Zrychlení nasazení: Proces sestavení a spuštění kontejneru je mnohem rychlejší než vytváření a konfigurace plnohodnotného virtuálního stroje.
- Podpora architektury mikroservisů: Kontejnery jsou ideální pro nasazení a správu jednotlivých mikroservisů.
- Neměnná infrastruktura: Místo aktualizace stávajících serverů jsou nasazovány nové kontejnery s novou verzí aplikace.
Příklad Dockerfile pro jednoduchou webovou aplikaci v Pythonu s Flask:
# Používáme základní obraz Ubuntu
FROM ubuntu:latest
# Instalujeme Python a pip
RUN apt-get update && apt-get install -y python3 python3-pip
# Instalujeme závislosti z requirements.txt
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt
# Kopírujeme kód aplikace
COPY app.py /app/
# Otevíráme port, na kterém aplikace naslouchá
EXPOSE 5000
# Příkaz pro spuštění aplikace
CMD ["python3", "app.py"]