Sobes.tech
Junior

Zašto se koriste kontejneri?

sobes.tech АИ

Одговор од АИ

Kontejneri se koriste za pakovanje aplikacije zajedno sa svim njenim zavisnostima (kod, biblioteke, konfiguracioni fajlovi) u standardizovani, izolovani modul koji može biti pokrenut u bilo kojoj sredini. Glavni ciljevi korišćenja:

  • Izolacija: Svaka aplikacija radi u izolovanom okruženju, ne utičući na druge aplikacije ili osnovni sistem.
  • Prenosivost: Kontejner napravljen u jednom okruženju garantuje da će se pokrenuti i raditi identično u bilo kojem drugom okruženju gde je instaliran kompatibilan kontejnerski motor (npr. Docker).
  • Reproduktivnost: Okruženje za izvršavanje aplikacije postaje determinističko, čime se eliminiše problem "radi na mom računaru".
  • Upravljanje zavisnostima: Sve potrebne biblioteke i zavisnosti se paketuju zajedno sa aplikacijom.
  • Efikasno korišćenje resursa: Kontejneri koriste resurse lakše od virtuelnih mašina, jer dele kernel operativnog sistema.
  • Ubrzanje implementacije: Proces izgradnje i pokretanja kontejnera je mnogo brži nego kreiranje i konfiguracija kompletne virtuelne mašine.
  • Podrška za arhitekturu mikroservisa: Kontejneri su idealni za implementaciju i upravljanje pojedinačnim mikroservisima.
  • Nepromenljiva infrastruktura: Umesto ažuriranja postojećih servera, implementiraju se novi kontejneri sa novom verzijom aplikacije.

Primer Dockerfile za jednostavnu web aplikaciju na Python-u sa Flask-om:

# Koristimo osnovni Ubuntu image
FROM ubuntu:latest

# Instaliramo Python i pip
RUN apt-get update && apt-get install -y python3 python3-pip

# Instaliramo zavisnosti iz requirements.txt
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# Kopiramo kod aplikacije
COPY app.py /app/

# Otvaramo port na kojem aplikacija sluša
EXPOSE 5000

# Komanda za pokretanje aplikacije
CMD ["python3", "app.py"]