Sobes.tech
Junior

Do czego służą kontenery?

sobes.tech AI

Odpowiedź od AI

Kontenery są używane do pakowania aplikacji wraz ze wszystkimi jej zależnościami (kod, biblioteki, pliki konfiguracyjne) w ustandaryzowany, izolowany moduł, który może być uruchomiony w dowolnym środowisku. Główne cele ich użycia:

  • Izolacja: Każda aplikacja działa w izolowanym środowisku, nie wpływając na inne aplikacje ani na system podstawowy.
  • Przenośność: Kontener zbudowany w jednym środowisku zagwarantuje, że uruchomi się i będzie działał identycznie w każdym innym środowisku z zainstalowanym kompatybilnym silnikiem kontenerów (np. Docker).
  • Reprodukowalność: Środowisko wykonawcze aplikacji staje się deterministyczne, co eliminuje problem "działa na mojej maszynie".
  • Zarządzanie zależnościami: Wszystkie potrzebne biblioteki i zależności są pakowane razem z aplikacją.
  • Efektywne wykorzystanie zasobów: Kontenery wykorzystują zasoby bardziej lekko niż maszyny wirtualne, ponieważ współdzielą jądro systemu operacyjnego.
  • Przyspieszenie wdrożenia: Proces budowania i uruchamiania kontenera jest znacznie szybszy niż tworzenie i konfigurowanie pełnej maszyny wirtualnej.
  • Wsparcie dla architektury mikroserwisów: Kontenery są idealne do wdrażania i zarządzania poszczególnymi mikroserwisami.
  • Niezmienna infrastruktura: Zamiast aktualizować istniejące serwery, wdraża się nowe kontenery z nową wersją aplikacji.

Przykład Dockerfile dla prostej aplikacji webowej na Pythonie z użyciem Flask:

# Używamy obrazu bazowego Ubuntu
FROM ubuntu:latest

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

# Instalujemy zależności z requirements.txt
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# Kopiujemy kod aplikacji
COPY app.py /app/

# Otwieramy port, na którym nasłuchuje aplikacja
EXPOSE 5000

# Komenda do uruchomienia aplikacji
CMD ["python3", "app.py"]