Sobes.tech
Junior

Kokiais tikslais naudojami konteineriai?

sobes.tech AI

Atsakymas iš AI

Konteineriai naudojami programos ir visų jos priklausomybių (kodas, bibliotekos, konfigūracijos failai) pakavimui į standartizuotą, izoliuotą modulį, kuris gali būti paleistas bet kurioje aplinkoje. Pagrindiniai naudojimo tikslai:

  • Izoliacija: Kiekviena programa veikia izoliuotoje aplinkoje, neįtakodama kitų programų ar pagrindinės sistemos.
  • Tarpinė perkeliamumas: Konteineris, sukurtas vienoje aplinkoje, garantuotai veiks ir veiks vienodai bet kurioje kitoje aplinkoje, kur įdiegta suderinama konteinerių variklis (pvz., Docker).
  • Reprodukuojamumas: Programos vykdymo aplinka tampa deterministinė, kas pašalina "veikia mano kompiuteryje" problemą.
  • Priklausomybių valdymas: Visos būtinos bibliotekos ir priklausomybės yra supakuotos kartu su programa.
  • Efektyvus išteklių naudojimas: Konteineriai naudoja išteklius lengviau nei virtualios mašinos, nes bendrą operacinės sistemos branduolį naudoja kartu.
  • Diegimo spartinimas: Konteinerio kūrimo ir paleidimo procesas yra daug greitesnis nei pilnos virtualios mašinos sukūrimas ir konfigūravimas.
  • Mikropaslaugų architektūros palaikymas: Konteineriai idealiai tinka diegti ir valdyti atskiras mikropaslaugas.
  • Ne keičiama infrastruktūra (Immutable Infrastructure): Vietoj esamų serverių atnaujinimo, diegiami nauji konteineriai su nauja programos versija.

Pavyzdys Dockerfile paprastai Python su Flask naudojimui:

# Naudojame Ubuntu bazinį vaizdą
FROM ubuntu:latest

# Įdiegti Python ir pip
RUN apt-get update && apt-get install -y python3 python3-pip

# Įdiegti priklausomybes iš requirements.txt
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# Nukopijuoti programos kodą
COPY app.py /app/

# Atidaryti prievadą, kurį klausys programa
EXPOSE 5000

# Komanda programai paleisti
CMD ["python3", "app.py"]