Sobes.tech
Junior

Milleks kasutatakse konteinerid?

sobes.tech AI

Vastus AI-lt

Konteinerid kasutatakse rakenduse ja selle kõigi sõltuvuste (kood, teegid, konfiguratsioonifailid) pakendamiseks standardiseeritud, isoleeritud moodulisse, mida saab käivitada mis tahes keskkonnas. Peamised kasutamise eesmärgid:

  • Isolatsioon: Iga rakendus töötab isoleeritud keskkonnas, mitte mõjutades teisi rakendusi või põhissüsteemi.
  • Liigutatavus: Ühes keskkonnas koostatud konteiner töötab garanteeritult ja töötab samamoodi teises keskkonnas, kus on paigaldatud ühilduv konteinerimootor (näiteks Docker).
  • Reprodutseeritavus: Rakenduse täitmise keskkond muutub deterministlikuks, mis kõrvaldab "töötab minu arvutis" probleemi.
  • Sõltuvuste haldamine: Kõik vajalikud teegid ja sõltuvused on rakendusega koos pakendatud.
  • Tõhus ressursside kasutamine: Konteinerid kasutavad ressursse kergemini kui virtuaalmasinad, kuna nad kasutavad ühiselt operatsioonisüsteemi kerneli.
  • Juhtimise kiirendamine: Konteineri ehitamine ja käivitamine on palju kiirem kui täisvirtuaalmasina loomine ja seadistamine.
  • Mikroteenuste arhitektuuri tugi: Konteinerid sobivad ideaalselt eraldi mikroteenuste kasutuselevõtuks ja haldamiseks.
  • Muutumatud infrastruktuurid (Immutable Infrastructure): Selle asemel, et uuendada olemasolevaid servereid, juurutatakse uued konteinerid uue versiooniga.

Näide Dockerfile'ist lihtsale Python Flask rakendusele:

# Kasutame Ubuntu baaspilti
FROM ubuntu:latest

# Paigaldame Python ja pip
RUN apt-get update && apt-get install -y python3 python3-pip

# Paigaldame sõltuvused requirements.txt-st
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# Kopeerime rakenduse koodi
COPY app.py /app/

# Avame pordi, mida rakendus kuulab
EXPOSE 5000

# Käsk rakenduse käivitamiseks
CMD ["python3", "app.py"]