Sobes.tech
Junior

Чӣ тавр тасвир (имаж) дар контексти контейнерсозӣ ва кадом сатҳҳо (қабатҳои) дар тасвир мавҷуданд?

sobes.tech AI

Ҷавоб аз AI

Контейнерлаштиришда образ (ёки суръат) ўзгартирилмайдиган, ёLight, мустақил, ижро этиш мумкин бўлган дастурий пакетдир ва у иловани ишга тушириш учун зарур бўлган ҳамма нарсани ўз ичига олади: код, иш муҳити, тизим воситалари, кутубхоналар ва созламалар. Асосан, бу файл тизими ва созламаларнинг "скриншоти" бўлиб, ундан контейнери яратилади.

Образнинг (суръат) сатҳлари (қатламлари) алоҳида, фақат ўқиш учун файл тизимларидир ва улар образни ташкил қилади. Ҳар бир қатлам аввалгига нисбатан ўзгаришлар тўпламини ифода қилади. Улар бир-бирининг ustiga қўйилади ва образнинг тўлиқ файл тизимини ташкил қилади. Қатламларнинг афзаллиги:

  • Самарадорлик: Қатламлар кешга олинади ва образлар орасида қайта ишлатилади, бу диск ҳажмини камайтиради ва тўплашни тезлаштиради.
  • Модуллик: Илова ёки асосий ишлаш тизимидаги ўзгаришлар фақат юқори қатламга таъсир қилади, пасткиларига эмас.
  • Умумий фойдаланиш: Бир нечта образлар умумий асосий қатламлардан фойдаланиши мумкин, масалан, ишлаш тизими қатлами.

Типик қатламлар тузилмаси:

  1. Асосий қатлам: Кўпинча минимал ишлаш тизими образини ўз ичига олади (масалан, Alpine, Ubuntu Base).
  2. Маҳаллий қатламлар: Кутубхоналар, таржимонлар (масалан, Python, Node.js) каби пакетлар қўшилади.
  3. Илова қатлами: Илованинг коди қўшилади.
  4. Созламалар/метадата қатлами: Иловани қандай ишга тушириш кераклигини тасвирлайди (ENTRYPOINT, CMD).

Ҳар бир Dockerfile кўрсатмаси одатда янги образ қатламини яратади. Масалан, RUN командаси командаларни бажаради ва натижани янги қатлам сифатида сақлайди.

# Асосий қатлам
FROM ubuntu:latest

# Маҳаллий қатламлар
RUN apt-get update && apt-get install -y curl

# Илова қатлами
COPY . /app
WORKDIR /app

# Созламалар қатлами
CMD ["node", "app.js"]