Şəkil və konteyner arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Şəkil (image) — tətbiqin işləməsi üçün lazım olan fayl sisteminin və konfiqurasiya parametrlərinin statik, dəyişməz görüntüsüdür. O, şablon kimi xidmət edir.
Konteyner (container) — bu, şəkilin işlək nüsxəsidir. O, dinamikdir və öz şəbəkə interfeysi, fayl sistemi (şəkil əsasında) və izolyasiya olunmuş mühit ilə işləyən prosesdir.
| Xüsusiyyət | Şəkil | Konteyner |
|---|---|---|
| Vəziyyət | Dəyişməz | Dəyişkən |
| Varlıq | Şablon | İşlək nüsxə |
| Ölçü | Adətən işlək konteynerdən kiçikdir | Yazma qatına görə daha böyük ola bilər |
| Həyat dövrü | Yaradılır, saxlanılır | Yaradılır, işə salınır, dayandırılır, silinir |
Nümunə: Dockerfile:
# Əsas şəkil
FROM ubuntu:latest
# Tətbiqi kopyala
COPY app /app
# Asılılıqları quraşdır
RUN apt-get update && apt-get install -y python3
# İşçi qovluğunu təyin et
WORKDIR /app
# İşə salma əmri
CMD ["python3", "main.py"]
Bu Dockerfile, şəkil necə qurulacağını təsvir edir. Şəkil qurulduqdan sonra, məsələn, docker build -t myapp . əmri ilə, statik myapp şəkili əldə edilir.
Sonra, docker run -d myapp əmri ilə, bu şəkil əsasında konteyner yaradılır. Bu konteyner, tətbiqimizin işlədiyi aktiv prosesdir. Bir çox konteyner eyni şəkildən yaradıla bilər. Bir konteyner daxilindəki dəyişikliklər (məsələn, faylların yazılması) şəkil və ya ondan yaradılan digər konteynerlərə təsir etmir, Copy-on-Write mexanizmi sayəsində.