Шта је Доцкер контејнер? - Контејнеришите своју апликацију помоћу Доцкера



Доцкер Цонтаинер је лагано алтернативно решење за виртуелну машину за стварање, примену и покретање апликација унутар контејнера.

Па, надам се да сте прочитали моје претходне блогове на Доцкер где сам обрадио основе Доцкера. Овде, на овом блогу Доцкер контејнера, разговараћу о томе шта су Доцкер контејнери и како то функционише. Углавном ћемо се фокусирати на практичне и примере Доцкера.

Навео сам теме за овај блог Доцкер Цонтаинер:





  • Зашто су нам потребни Доцкер контејнери?
  • Како функционишу Доцкер контејнери?
  • Случајеви употребе Доцкер контејнера

Зашто су нам потребни Доцкер контејнери?

Још се добро сећам, радио сам на пројекту. У том пројекту пратили смо микросервисну архитектуру. За оне који не знате шта је микро услуга, не брините, даћу вам увод у њу.

Идеја микроуслуга је да одређене врсте апликација постају лакше градити и одржавати када се рашчлане на мање компонирајуће комаде који раде заједно. Свака компонента се развија засебно, а апликација је тада једноставно збир њених саставних компонената.



Размотрите пример у наставку:

Апликација за куповину на мрежи - Доцкер контејнер - Едурека

На горњем дијаграму постоји мрежна продавница са одвојеним микросервисима за кориснички рачун, каталог производа, обраду наруџби и колица за куповину.



Па, ова архитектура има пуно предности:

  • Чак и ако један од ваших микросервиса не успе, цела ваша апликација углавном неће утицати.
  • Лакше је управљати

Постоје и многе друге погодности, у овом посту нећу улазити у детаље о микросервисима. Али, ускоро ћу осмислити и неколико блогова на микросервисима.

У овој архитектури користили смо ЦентОС виртуелне машине. Те виртуелне машине су конфигурисане писањем дугих скрипти. Па, конфигурисање тих ВМ-а није био једини проблем.

Развој таквих апликација захтева покретање неколико микросервиса у једној машини. Дакле, ако покрећете пет од тих услуга, потребно вам је пет ВМ-а на тој машини. Размотрите доњи дијаграм:

Други проблем је прилично чест, знам да се многи од вас могу повезати с њим. Апликација ради на преносном рачунару програмера, али не и на тестирању или у производњи. То може бити због непридржавања конзистентног рачунарског окружења. Размотрите доњи дијаграм:

Било је и многих других проблема осим овога, али сматрам да су ми ови проблеми довољни да вам објасним потребу за Доцкер контејнерима.

Сазнајте како су Доцкер контејнери бољи од виртуелних машина

Дакле, замислите да ли дајем 8 ГБ РАМ-а свим својим ВМ-има и имам 5 микросервиса који раде на различитим виртуелним машинама. У том случају, овим ВМ-овима ће бити потребно 40 ГБ РАМ-а. Ето, сада захтевам да конфигурације мог рачунара за домаћин буду веома високе, скоро 44 ГБ РАМ-а би требало да буде тамо у мојој рачунарској машини. Очигледно је да ово није одрживо решење за такву архитектуру, јер овде трошим много ресурса.

У реду, имам пуно ресурса за губљење, али и даље имам проблем недоследности у свом животном циклусу испоруке софтвера (СДЛЦ). Морам да конфигуришем ове ВМ-ове у тесту, као и у производном окружењу. Негде у том процесу неки софтвер није ажуриран на тест серверу, а тим за развој користи ажурирану верзију софтвера. То доводи до сукоба.

Шта ако користим 100 ВМ-а, тада ће конфигурисање сваке ВМ-а потрајати пуно времена, а истовремено је и склоно грешкама.

Хајде сада да разумемо шта је Доцкер контејнер и како то функционише и како је решио мој проблем.

Шта је Доцкер контејнер?

Доцкер је алат дизајниран да олакша стварање, примену и покретање апликација помоћу контејнера.

Можете да креирате Доцкер контејнере, ти контејнери ће садржати све бинарне датотеке и библиотеке потребне за вашу апликацију или микросервис у мом случају. Дакле, ваша апликација је присутна у контејнеру или сте је контејнерирали. Сада се тај исти контејнер може користити у Тест и Прод окружењу.

Доцкер контејнери су лагано решење за виртуелне машине и користе хост ОС. Најбољи део је што не морате унапред доделити РАМ меморију Доцкер контејнеру, узимаће га по потреби и када је то потребно. Дакле, са Доцкер Цонтаинер-ом не морам да бринем о расипању ресурса.

Хајде сада да разумемо како функционише Доцкер контејнер.

Како ради Доцкер контејнер?

Дијаграм испод је у основи начин за употребу Доцкера. И претпостављам да имате идеју о Доцкер Имаге-у и Доцкерфиле-у.

Момци, знам да дијаграм изгледа мало сложено, али верујте ми да није толико сложен. Испод је објашњење дијаграма, чак и након тога осећате да је то тешко разумети, можете коментарисати своју сумњу, ја ћу одговорити на та питања што пре.

  • Програмер ће прво написати код пројекта у Доцкер датотеку, а затим ће из те датотеке направити слику.
  • Ова слика ће садржати целокупан код пројекта.
  • Сада можете покренути ову Доцкер слику да бисте креирали онолико контејнера колико желите.
  • Ова Доцкер слика може се отпремити на Доцкер чвориште (у основи је то спремиште у облаку за ваше Доцкер слике, можете је задржати јавном или приватном).
  • Ову Доцкер слику на чворишту Доцкер могу повући други тимови попут КА или Прод.

Ово не само да спречава расипање ресурса, већ такође осигурава да се рачунарско окружење које се налази на преносном рачунару програмера реплицира и на друге тимове. Сад осећам да не морам да вам кажем зашто нам је потребан Доцкер.

Ово је био један од начина да га користим, претпостављам да вас људи занима да знате како сам помоћу Доцкера решио свој проблем са микросервисима. Даћу вам преглед истог.

Испод је објашњење дијаграма:

је магистрирао на постдипломским студијама
  • Прво, написали смо сложене захтеве у Доцкерфиле-у.
  • Затим смо га гурнули на ГитХуб.
  • Након тога смо користили ЦИ сервер (Јенкинс).
  • Овај Јенкинс сервер ће га повући из Гита и направити тачно окружење. Ово ће се користити у производним серверима, као и у тест серверима.
  • Применили смо га у инсценацијско окружење (односи се на постављање вашег софтвера на сервере ради тестирања, пре него што га у потпуности применимо у производну.) Окружења за тестере.
  • У основи, у производњу смо убацили управо оно што смо имали у развоју, испитивању и постављању.

Биће заправо поштено рећи да ми је Доцкер олакшао живот.

Па, то је била прича моје компаније, погледајмо студију случаја Универзитета Индиана. Како је Доцкер решио њихове проблеме.

Студија случаја са Универзитета Индиана:

Универзитет Индиана је јавни универзитетски систем са више кампуса у држави Индиана, Сједињене Државе.

Изјава о проблему

Користили су прилагођене скрипте за примену апликација у ВМ.

Њихово окружење је оптимизовано за њихове застареле Јава апликације. Њихово растуће окружење укључује нове производе који нису засновани само на Јава-и. Да би својим студентима пружио најбоље могуће искуство, Универзитет је требао започети модернизацију апликација.

Универзитет је желео да побољша начин на који дизајнирају апликације преласком на архитектуру засновану на микросервисима за њихове апликације.

Сигурност је била потребна за податке ученика као што су ССН и подаци о здрављу ученика.

Решење:

Све проблеме је решио Доцкер Дата Центер (ДДЦ), размотрите доњи дијаграм:

Доцкер поуздани регистар - Чува Доцкер слике.

УЦП (Универзални управљачки ниво) Веб корисничко сучеље - Помаже у управљању целим кластером са једног места. Услуге се примењују помоћу УЦП веб корисничког интерфејса, користећи Доцкер слике које се чувају у ДТР (Доцкер Трустед Регистри).

ИТ оперативни тимови користе Универсал Цонтрол Плане да обезбеде Доцкер инсталирани софтвер на хостовима, а затим примене њихове апликације без потребе за гомилом ручних корака да би поставили сву своју инфраструктуру.

УЦП и ДТР се интегришу са својим ЛДАП сервером да би брзо омогућили приступ својим апликацијама.

Надам се да сте прочитали претходне блогове да бисте научили основе Доцкера.

Сада ћу вам објаснити како можемо да користимо Доцкер Цомпосе за апликацију са више контејнера.

Доцкер Хандс-Он:

Претпостављам да сте инсталирали Доцкер.Користићу Доцкер Цомпосе у овом посту, у наставку сам дао мали увод у Доцкер Цомпосе.

Доцкер Цомпосе: То је алат за дефинисање и покретање Доцкер апликација са више контејнера. Помоћу Доцкер Цомпосе датотеке Цомпосе можете да конфигуришете услуге своје апликације. Тада помоћу једне команде можете креирати и покренути све услуге из ваше конфигурације.

Претпоставимо да имате више апликација у различитим контејнерима и да су сви ти контејнери повезани заједно. Дакле, не желите да извршите сваки од тих контејнера један по један. Али, те контејнере желите да покренете једном командом. Ту Доцкер Цомпосе долази до слике. Помоћу ње можете покренути више апликација у разним контејнерима једном командом. тј. доцкер-цомпосе уп.

Пример: Замислите да имате различите контејнере, један који покреће веб апликацију, други покреће постгрес и други који покреће редис, у ИАМЛ датотеци. То се назива доцкер композитна датотека, одатле можете покренути ове контејнере једном командом.

Узмимо још један пример:

Претпоставимо да желите да објавите блог, за то ћете користити ЦМС (Цонтент Манагемент Систем), а вордпресс је најчешће коришћени ЦМС. У основи, потребан вам је један контејнер за ВордПресс и потребан вам је још један контејнер као МиСКЛ за позадину, тај МиСКЛ контејнер треба да буде повезан са вордпресс контејнером. Такође нам треба још један контејнер за Пхп Миадмин који ће бити повезан са МиСКЛ базом података, у основи се користи за приступ МиСКЛ бази података.

Како би било да горе наведени пример извршим практично.

Укључени кораци:

  1. Инсталирајте Доцкер Цомпосе :
  2. Инсталирајте ВордПресс: Користићемо службено ВордПресс и МариаДБ Доцкер слике.
  3. Инсталирајте МариаДБ: Један је од најпопуларнијих сервера база података на свету. Направили су га оригинални програмери МиСКЛ-а. МариаДБ је развијен као софтвер отвореног кода и као релациона база података пружа СКЛ интерфејс за приступ подацима.
  4. Инсталирајте ПхпМиАдмин: То је бесплатни софтверски алат написан на ПХП-у, намењен за управљање МиСКЛ-ом преко Веба.
  5. Направите ВордПресс страницу:

Хајде да почнемо!

Инсталирај Доцкер Цомпосе:

Прво инсталирајте Питхон Пип:

судо апт-гет инсталирај питхон-пип

Сада можете инсталирати Доцкер Цомпосе:

судо пип инсталирај доцкер-цомпосе

Инсталирајте ВордПресс:

Направите вордпресс директоријум:

мкдир вордпресс

Унесите овај вордпресс директоријум:

цд вордпресс /

У овом директоријуму креирајте Доцкер Цомпосе ИАМЛ датотеку, а затим је уредите помоћу гедит:

судо гедит доцкер-цомпосе.имл

Залепите доње редове кода у ону иамл датотеку:

вордпресс: слика: вордпресс везе: - вордпресс_дб: мискл портови: - 8080: 80 вордпресс_дб: имаге: мариадб окружење: МИСКЛ_РООТ_ПАССВОРД: едурека пхпмиадмин: имаге: цорбину / доцкер-пхпмиадмин везе: - вордпресс_дб: мискл портови: - 8181: 80 МИСКЛ_УСЕРНАМЕ: роот МИСКЛ_РООТ_ПАССВОРД: едурека

Знам да желите да објасним овај код, па ћу, шта ћу радити, узети мале делове овог кода и објаснити вам шта се догађа.

вордпресс_дб: ... окружење: МИСКЛ_РООТ_ПАССВОРД: едурека ...

Ово ће поставити променљиву окружења унутар контејнера вордпресс_дб под називом МИСКЛ_РООТ_ПАССВОРД са жељеном лозинком. Слика МариаДБ Доцкер је конфигурисана за проверу ове променљиве окружења када се покрене и побринуће се за подешавање ДБ-а са роот налогом са лозинком дефинисаном као МИСКЛ_РООТ_ПАССВОРД.

вордпресс: ... портови: - 8080: 80 ...

Први број порта је број порта на хосту, а други број порта је порт унутар контејнера. Дакле, ова конфигурација прослеђује захтеве на порту 8080 хоста на подразумевани порт веб сервера 80 унутар контејнера.

пхпмиадмин: слика: цорбину / доцкер-пхпмиадмин везе: - вордпресс_дб: мискл портови: - 8181: 80 окружење: МИСКЛ_УСЕРНАМЕ: роот МИСКЛ_РООТ_ПАССВОРД: едурека

Ово граби доцкер-пхпмиадмин од члана заједнице цорбину, повезује га са нашим вордпресс_дб контејнером са именом мискл (што значи да се унутар пхпмиадмин контејнера референце на име хоста мискл прослеђују нашем вордпресс_дб контејнеру), излаже свој порт 80 на порту 8181 од хост систем, и на крају поставља неколико променљивих околине са нашим МариаДБ корисничким именом и лозинком. Ова слика не преузима аутоматски променљиву окружења МИСКЛ_РООТ_ПАССВОРД из окружења вордпресс_дбцонтаинер, онако како то ради вордпресс слика. Заправо морамо копирати линију МИСКЛ_РООТ_ПАССВОРД: едурека из контејнера вордпресс_дб и поставити корисничко име на роот.

Сада покрените групу апликација:

доцкер-цомпосе уп -д

То је све што треба да урадите. На овај начин можете додати колико год желите контејнера и повезати их на било који начин.

Сада у прегледачу идите на порт 8080, користећи вашу јавну ИП адресу или име хоста, као што је приказано доле:

лоцалхост: 8080

Попуните овај образац и кликните на Инсталл ВордПресс.

Када заврши, поново посетите ИП адресу сервера (овог пута помоћу порта 8181, нпр. Лоцалхост: 8181). Дочекаће вас екран за пријављивање пхпМиАдмин:

Само се пријавите користећи роот и лозинку корисничког имена које сте поставили у ИАМЛ датотеци и моћи ћете да прегледате своју базу података. Приметићете да сервер укључује вордпресс базу података која садржи све податке из ваше ВордПресс инсталације.

Ево, завршавам свој блог Доцкер Цонтаинер. Надам се да сте уживали у овом посту. Можете проверити други блогови у серији, која се бави основама Доцкера.

Ако вам се учини да је овај блог Доцкер Цонтаинер релевантан, погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Едурека ДевОпс сертификациони курс помаже ученицима да стекну стручност у различитим ДевОпс процесима и алатима као што су Пуппет, Јенкинс, Доцкер, Нагиос, Ансибле, Цхеф, Салтстацк и ГИТ за аутоматизацију више корака у СДЛЦ.

Имаш питање за мене? Молимо вас да то споменете у одељку за коментаре и јавићу вам се.