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