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"]