Sobes.tech
Junior

რისთვის გამოიყენება კონტეინერი?

sobes.tech AI

პასუხი AI-სგან

კონტეინერები გამოიყენება აპლიკაციის და მისი ყველა დამოკიდებულების (კოდი, ბიბლიოთეკები, კონფიგურაციის ფაილები) პაკეტირებისთვის სტანდარტიზებულ, იზოლირებულ მოდულში, რომელიც შეიძლება იყოს გაშვებული ნებისმიერ გარემოში. გამოყენების ძირითადი მიზნები:

  • იზოლაცია: თითოეული აპლიკაცია მუშაობს იზოლირებულ გარემოში, არ ზემოქმედებს სხვა აპლიკაციებზე ან ძირითადი სისტემაზე.
  • ტარატულობა: ერთ გარემოში შეკრებილი კონტეინერი გარანტირებულად იმუშავებს და იმუშავებს ერთნაირად ნებისმიერ სხვა გარემოში, სადაც დამონტაჟებულია შესაბამისი კონტეინერების ძრავი (მაგალითად, Docker).
  • გადამწყვეტობა: აპლიკაციის შესრულების გარემო ხდება დეტერმინირებული, რაც ამცირებს "მუშაობს ჩემს მანქანაზე" პრობლემას.
  • დამოკიდებულებების მართვა: ყველა საჭირო ბიბლიოთეკა და დამოკიდებულება პაკეტშია ჩართული აპლიკაციისთან.
  • ეფექტიანი რესურსების გამოყენება: კონტეინერები იყენებენ რესურსებს უფრო მსუბუქად, ვიდრე ვირტუალური მანქანები, რადგან ისინი ერთობლივად იყენებენ ოპერაციული სისტემის ბირთვს.
  • გადატვირთვის სიჩქარე: კონტეინერის აგება და გაშვება ბევრად სწრაფია, ვიდრე სრული ვირტუალური მანქანის შექმნა და კონფიგურაცია.
  • მიკროწესვიან არქიტექტურას მხარდაჭერა: კონტეინერები იდეალურია მიკროწესვიანების განთავსებისა და მართვისთვის.
  • შეუცვლელი ინფრასტრუქტურა (Immutable Infrastructure): ნაცვლად არსებული სერვერების განახლებისა, განთავსდება ახალი კონტეინერები ახალი ვერსიით.

Python-ის და Flask-ის გამოყენებით მარტივი ვებ-აპლიკაციის Dockerfile-ის მაგალითი:

# გამოყენებულია Ubuntu-ის ბაზისეული სურათი
FROM ubuntu:latest

# Python და pip-ის ინსტალაცია
RUN apt-get update && apt-get install -y python3 python3-pip

# დამოკიდებულებების ინსტალაცია requirements.txt-დან
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# აპლიკაციის კოდის კოპირება
COPY app.py /app/

# პორტის გახსნა, რომელიც აპლიკაცია უსმენს
EXPOSE 5000

# ბრძანება აპლიკაციის დასაწყებად
CMD ["python3", "app.py"]