Konteynerləşdirmə kontekstində görüntü (imaj) nədir və görüntüdə hansı səviyyələr (qatlar) mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
Konteynerləşdirmədə obraz (və ya şəkil) dəyişməz, yüngül, müstəqil, icra olunan proqram təminatı paketidir və tətbiqi işlətmək üçün lazım olan hər şeyi özündə ehtiva edir: kod, icra mühiti, sistem alətləri, kitabxanalar və konfiqurasiyalar. Əsasən, bu, konteynerlərin yaradıldığı fayl sistemi və konfiqurasiyanın "sənədli çəkimi"dir.
Obrazın (şəkil) səviyyələri (qatlar) — bu, obrazı təşkil edən müstəqil, yalnız oxumaq üçün fayl sistemləridir. Hər qat, əvvəlki qatla müqayisədə dəyişikliklər toplusunu təmsil edir. Onlar bir-birinin üstünə qurulur və obrazın tam fayl sistemini təşkil edir. Qatların üstünlükləri:
- Effektivlik: Qatlar keşikdə saxlanılır və obrazlar arasında təkrar istifadə olunur, bu da disk sahəsini azaldır və yığma prosesini sürətləndirir.
- Modulluq: Tətbiq və ya əsas əməliyyat sistemi üzərində edilən dəyişikliklər yalnız yuxarı qatlara təsir edir, aşağı qatlara toxunmur.
- Paylaşım: Bir neçə obraz ümumi əsas qatları istifadə edə bilər, məsələn, əməliyyat sistemi qatını.
Tipik qat strukturu:
- Əsas qat: Tez-tez minimal əməliyyat sistemi obrazını ehtiva edir (məsələn, Alpine, Ubuntu Base).
- Asılılıq qatları: Kitabxanalar, tərcüməçilər (məsələn, Python, Node.js) kimi paketlər əlavə olunur.
- Tətbiq qat: Tətbiq kodu əlavə olunur.
- Konfiqurasiya/metadatası qat: Tətbiqin necə işə salınacağı təsvir olunur (ENTRYPOINT, CMD).
Hər Dockerfile göstərişi adətən yeni bir obraz qatını yaradır. Məsələn, RUN əmri əmrləri icra edir və nəticəni yeni qat kimi saxlayır.
# Əsas qat
FROM ubuntu:latest
# Asılılıq qatları
RUN apt-get update && apt-get install -y curl
# Tətbiq qat
COPY . /app
WORKDIR /app
# Konfiqurasiya
CMD ["node", "app.js"]