Sobes.tech
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"]