რა განსხვავებაა სურათსა და კონტეინერს შორის?
sobes.tech AI
პასუხი AI-სგან
ಚಿತ್ರ (image) — ეს არის სტატიკური, შეუცვლელი სურათი ფაილურ სისტემასა და კონფიგურაციის პარამეტრებზე, რომლებიც საჭიროა პროგრამის დაწყებისთვის. ის ემსახურება შაბლონად.
კონტეინერი (container) — ეს არის სურათის მოქმედი ნიმუში. იგი დინამიკურია და წარმოადგენს პროცესს, რომელსაც აქვს საკუთარი ქსელური ინტერფეისი, ფაილური სისტემა (სურათზე დაფუძნებული) და იზოლირებული გარემო.
| მახასიათებელი | სურათი | კონტეინერი |
|---|---|---|
| მდგომარეობა | შეუცვლელი | ცვალებადი |
| არსი | შაბლონი | მუშაობა პროცესის ნიმუში |
| ზომა | ჩვეულებრივ უფრო მცირეა, ვიდრე მუშაობა პროცესის კონტეინერი | შეიძლება იყოს უფრო დიდი, წერის ფენას გამო, |
| სიცოცხლის ციკლი | შექმნილია, ინახება | შექმნილია, იწყება, შეჩერებულია, წაიშლება |
მაგალითი: Dockerfile:
# საწყისი სურათი
FROM ubuntu:latest
# პროგრამის კოპირება
COPY app /app
# დამოკიდებულებების ინსტალაცია
RUN apt-get update && apt-get install -y python3
# სამუშაო დირექტორიის განსაზღვრა
WORKDIR /app
# დაწყების ბრძანება
CMD ["python3", "main.py"]
ეს Dockerfile აღწერს, როგორ აშენდეს სურათი. სურათის აშენების შემდეგ, მაგალითად, ბრძანებით docker build -t myapp ., მივიღებთ სტატიკურ სურათს myapp.
შემდეგ, ბრძანების docker run -d myapp შესრულებით, ვქმნით კონტეინერს ამ სურათზე. ეს კონტეინერი არის აქტიური პროცესი, სადაც ჩვენი პროგრამა მუშაობს. შესაძლებელია რამდენიმე კონტეინერის შექმნა ერთ სურათზე. კონტეინერის შიგნით ცვლილებები (მაგალითად, ფაილების ჩაწერა) არ ზემოქმედებს სურათზე ან სხვა კონტეინერებზე, რომლებიც ამ სურათიდან არის შექმნილი, Copy-on-Write მექანიზმის წყალობით.