Node тиркемесин контейнерлештирүү
Сервисти жана ага керектүү бардык нерсени бир көчмө образга таңгактаңыз
- образ менен контейнердин айырмасын түшүндүрүү;
- Express тиркемеси үчүн туура
Dockerfileжазуу; - инструкцияларды катмар кэши сизге каршы эмес, пайдага иштеши үчүн иреттөө;
- көп этаптуу куруу менен образдарды кичирейтип жана коргоо;
- иштеп жатканда чөйрө өзгөрмөлөрү аркылуу конфигурацияны жеткирүү;
- контейнерлештирилген тиркеме үчүн куруу, иштетүү жана порт байланыштыруу.
1. "Менде иштейт"тен деңиз контейнерине
Сиз орто курстарды бүтүрдүңүз: маршрутизациясы, middleware, JWT авторизациясы, валидациясы, SQL же MongoDB катмары жана тесттери бар Express API кура аласыз. Сиздин машинаңызда баары мыкты иштейт. Анан кесиптешиңиз проектти клондойт -- ал бузулат: анда Node 16-версия, чөйрө өзгөрмөсү жетишпейт, нативдик модуль компиляцияланбайт же система китепканасы башка версияда. Код бирдей; чөйрө башка.
Салыштыруу. Стандарт деңиз контейнерлерине чейин жүк үймөлөп, даана-даана жүктөлүп, ар бир кеме, кран жана жүк ташуучу аны өзүнчө иштетчү. Болот контейнер баарын өзгөрттү: жүктү бир жолу таңгактагыла -- дүйнөдөгү каалаган кеме же кран ошол бирдей кутуну ичиндегисине карабай ташыйт. Docker образы -- программалар үчүн ошол куту. Сиз тиркемени, анын Node чөйрөсүн, көз карандылыктарын жана файлдарын бир жолу таңгактайсыз; Docker бар каалаган хост ошол бирдей кутуну кантип курулганына кызыкпай иштетет.
Docker муну ОС деңгээлиндеги виртуалдаштыруу менен жасайт. Контейнер -- бул хосттун Linux ядросундагы обочолонгон процесс, өз ядросу бар толук виртуалдык машина эмес. Ошондуктан контейнерлер миллисекундда башталат жана дээрлик кошумча жүк кошпойт, ошол эле учурда ар бир тиркемеге өзүнүн файл системасын, тармак көрүнүшүн жана процесс мейкиндигин берет.