Sobes.tech
Junior

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:

  1. Əsas qat: Tez-tez minimal əməliyyat sistemi obrazını ehtiva edir (məsələn, Alpine, Ubuntu Base).
  2. Asılılıq qatları: Kitabxanalar, tərcüməçilər (məsələn, Python, Node.js) kimi paketlər əlavə olunur.
  3. Tətbiq qat: Tətbiq kodu əlavə olunur.
  4. 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"]