Mis on Dockeri konteiner? - Konteinerite oma rakendust Dockeri abil

Docker Container on virtuaalsele masinale kerge alternatiivlahendus konteineris olevate rakenduste loomiseks, juurutamiseks ja käitamiseks.

Noh, ma loodan, et olete minu eelmisi ajaveebe lugenud Docker kus olen kajastanud Dockeri põhitõdesid. Siin Dockeri konteinerite ajaveebis arutlen selle üle, mis on Dockeri konteinerid ja kuidas see töötab. Enamasti keskendume Dockeri käed külge ja kasutustele.



Lisasin selle Docker Containeri ajaveebi teemad:



  • Miks me vajame dokkerikonteinereid?
  • Kuidas Dockeri konteinerid töötavad?
  • Dockeri konteineri kasutamise juhtumid

Miks me vajame dokkerikonteinereid?

Mäletan seda siiani õigesti, töötasin projekti kallal. Selles projektis järgisime mikroteenuse arhitektuuri. Neile teist, kes ei tea, mis on mikroteenus, ärge muretsege, ma teen teile selle sissejuhatuse.

Mikroteenuste idee seisneb selles, et teatud tüüpi rakendusi on lihtsam üles ehitada ja hooldada, kui need jaotatakse väiksemateks kooskõlastatavateks tükkideks. Iga komponent on välja töötatud eraldi ja rakendus on siis lihtsalt selle komponentide summa.



Vaatleme järgmist näidet:

Veebipoodide rakendus - Dockeri konteiner - Edureka

Ülaltoodud skeemil on eraldi mikroteenustega veebipood kasutajakonto, tootekataloogi, tellimuste töötlemise ja ostukorvide jaoks.



Noh, sellel arhitektuuril on palju eeliseid:

  • Isegi kui üks teie mikroteenustest ebaõnnestub, ei mõjuta see kogu teie rakendust.
  • Seda on lihtsam juhtida

Samuti on palju muid eeliseid, ma ei hakka selles postituses mikroteenuste kohta eriti üksikasjalikult rääkima. Kuid varsti mõtlen paar blogi ka mikroteenuste kohta.

Selles arhitektuuris kasutasime CentOS Virtual Machines. Need virtuaalsed masinad konfigureeriti pikkade skriptide kirjutamise teel. Noh, nende VM-ide konfigureerimine polnud ainus probleem.

Selliste rakenduste väljatöötamine nõuab mitme mikroteenuse käivitamist ühes masinas. Nii et kui alustate viit neist teenustest, vajate sellel masinal viit virtuaalseadet. Vaatleme järgmist skeemi:

Teine probleem on üsna tavaline, ma tean, et paljud teist saavad sellega seostada. Rakendus töötab arendaja sülearvutis, kuid ei testimisel ega tootmises. Selle põhjuseks võib olla järjepideva arvutuskeskkonna mitte hoidmine. Vaatleme järgmist skeemi:

Peale selle oli ka palju muid probleeme, kuid ma arvan, et need probleemid on mulle piisavad, et selgitada teile Dockeri konteinerite vajadust.

Siit saate teada, kuidas dokkerikonteinerid on virtuaalsetest masinatest paremad

Niisiis, kujutage ette, kui annan kõigile oma virtuaalseadmetele 8 GB RAM-i ja mul on 5 virtuaalset masinat töötavad 5 mikroteenust. Sel juhul vajavad need VM-id 40 GB RAM-i. Noh, nüüd nõuan, et mu masina konfiguratsioonid oleksid väga kõrged, minu hostimasinas peaks olema peaaegu 44 GB RAM-i. Ilmselgelt pole see sellise arhitektuuri jaoks jätkusuutlik lahendus, sest raiskan siin palju ressursse.

Hea, mul on palju ressursse, mida raisata, kuid siiski on mul tarkvara tarnimise elutsüklis (SDLC) ebajärjekindluse probleem. Pean neid VM-e konfigureerima nii testis kui ka prod-keskkonnas. Kusagil selles protsessis ei värskendatud mõnda tarkvara testiserveris ja Dev-meeskond kasutab tarkvara värskendatud versiooni. See viib konfliktideni.

Mis siis, kui kasutan 100 VM-i, võtab iga VM-i konfigureerimine palju aega ja samal ajal on see ka veaoht.

Nüüd andke meile mõista, mis on Docker Container ja kuidas see töötab ning kuidas see minu probleemi lahendas.

Mis on Dockeri konteiner?

Docker on tööriist, mis on loodud konteinerite abil rakenduste loomise, juurutamise ja käitamise hõlbustamiseks.

massiivi javascripti pikkus

Saate luua Dockeri konteinereid, need konteinerid sisaldavad minu puhul kõiki teie rakenduse või mikroteenuse jaoks vajalikke kausta- ja teeke. Nii et teie rakendus on konteineris või olete oma rakenduse konteinerisse lisanud. Nüüd saab seda sama konteinerit kasutada keskkonnas Test ja Prod.

Dockeri konteinerid on virtuaalsete masinate kerge lahendus ja see kasutab host-OS-i. Parim osa: te ei pea Dockeri konteinerisse eelnevalt RAM-i eraldama, see võtab seda vastavalt vajadusele. Nii et Dockeri konteineriga ei pea ma muretsema ressursside raiskamise pärast.

Saame nüüd aru, kuidas Dockeri konteiner töötab.

Kuidas Dockeri konteiner töötab?

Allolev skeem on põhimõtteliselt viis Dockeri kasutamiseks. Ja ma eeldan, et teil on idee Docker Image ja Dockerfile kohta.

Poisid, ma tean, et skeem näeb natuke keeruline välja, kuid usaldage mind, et see pole nii keeruline. Allpool on skeemi selgitus, isegi pärast seda tunnete, et seda on raske mõista, võite oma kahtlust kommenteerida, ma käsitlen neid küsimusi ASAP.

  • Arendaja kirjutab kõigepealt projekti koodi Dockeri faili ja ehitab seejärel sellest failist pildi.
  • See pilt sisaldab kogu projekti koodi.
  • Nüüd saate selle Docker Image'i käivitada, et luua nii palju konteinereid kui soovite.
  • Selle Dockeri pildi saab üles laadida Dockeri jaoturisse (see on põhimõtteliselt teie Docker Images'i pilvehoidla, saate seda hoida avalikuna või privaatsena).
  • Selle Dockeri pildi Dockeri jaoturis saavad tõmmata teised meeskonnad, näiteks QA või Prod.

See hoiab ära mitte ainult ressursside raiskamise, vaid tagab ka selle, et arendaja sülearvutis olev arvutuskeskkond kordub ka teistes meeskondades. Nüüd tunnen, et ma ei pea teile ütlema, miks me Dockerit vajame.

See oli üks viis selle kasutamiseks. Ma arvan, et teie kutid peavad olema uudishimulikud, et teada saada, kuidas ma kasutasin Dockerit oma mikroteenuste probleemi lahendamiseks. Lubage mul anda teile ülevaade samast.

Allpool on skeemi selgitus:

  • Esiteks kirjutasime Dockerfile'i keerukad nõuded.
  • Siis lükkasime selle GitHubi.
  • Pärast seda kasutasime CI-serverit (Jenkins).
  • See Jenkinsi server tõmbab selle Gitist alla ja loob täpse keskkonna. Seda kasutatakse nii tootmisserverites kui ka testiserverites.
  • Rakendasime selle testijate jaoks keskkondadesse (see viitab teie tarkvara juurutamisele serveritele testimise eesmärgil enne nende täielikku tootmisse juurutamist.).
  • Põhimõtteliselt kasutasime tootmises täpselt seda, mis meil oli arenduse, testimise ja etapiviisimise osas.

Tegelikult on aus öelda, et Docker tegi mu elu lihtsaks.

Noh, see oli minu ettevõtte lugu, vaatame Indiana ülikooli juhtumiuuringut. Kuidas Docker nende probleemid lahendas.

Indiana ülikooli juhtumiuuring:

Indiana ülikool on mitme ülikoolilinnakuga avalik ülikoolide süsteem Ameerika Ühendriikides Indiana osariigis.

kuidas string pythonis ümber pöörata

Probleemipüstituses

Nad kasutasid VM-i rakenduste juurutamiseks kohandatud skripte.

Nende keskkond oli optimeeritud nende pärandatud Java-põhiste rakenduste jaoks. Nende kasvukeskkond hõlmab uusi tooteid, mis ei ole ainult Java-põhised. Oma üliõpilastele parimate võimalike kogemuste saamiseks pidi ülikool alustama rakenduste kaasajastamist.

Ülikool soovis parandada rakenduste kujundamise viisi, liikudes oma rakenduste jaoks mikroteenuste põhisele arhitektuurile.

Turvalisust oli vaja õpilase andmete, näiteks SSN-ide ja õpilaste terviseandmete jaoks.

Lahendus:

Kõigi probleemidega tegeles Dockeri andmekeskus (DDC), võtke arvesse järgmist diagrammi:

Dockeri usaldusväärne register - See salvestab Docker Images.

UCP (Universal Control Plane) veebiliides - Aitab kogu klastri haldamisel ühest kohast. Teenused juurutatakse UCP veebiliidese abil, kasutades DTR-i (Dockeri usaldusväärne register) salvestatud Dockeri pilte.

IT-opside meeskonnad kasutavad universaalset juhtimisplaani, et pakkuda Dockerile installitud tarkvara hostidele ja seejärel juurutada oma rakendused, ilma et peaks kogu oma infrastruktuuri seadistamiseks tegema hulgaliselt käsitsi toiminguid.

UCP ja DTR integreeruvad oma LDAP-serveriga, et pakkuda kiiresti juurdepääsu nende rakendustele.

Loodan, et olete lugenud eelmisi ajaveebe, et õppida Dockeri põhitõdesid.

Nüüd selgitan teile, kuidas saame Docker Compose'i kasutada mitme konteineri rakenduste jaoks.

Dockeri käed-külge:

Eeldan, et olete Dockeri installinud.Ma kasutan selles postituses Docker Compose'i, allpool olen teinud väikese sissejuhatuse Docker Compose'i.

Dockeri kirjutamine: See on tööriist mitme konteineriga Dockeri rakenduste määratlemiseks ja käitamiseks. Rakenduse Docker Compose abil saate rakenduse teenuste konfigureerimiseks kasutada faili Koosta. Seejärel saate ühe käsu abil luua ja käivitada kõik teenused oma konfiguratsioonist.

Oletame, et teil on erinevates konteinerites mitu rakendust ja kõik need konteinerid on omavahel ühendatud. Nii et te ei soovi neid konteinereid ükshaaval täita. Kuid soovite neid konteinereid käitada ühe käsuga. Seal tuleb Docker Compose pildile. Sellega saate ühe käsuga käivitada mitu rakendust erinevates konteinerites. st dokk-komponeerida.

Näide: Kujutage ette, et teil on YAML-failis erinevad konteinerid: üks töötab veebirakenduses, teine ​​postgres ja teine ​​redis. Seda nimetatakse dockeri koostamisfailiks, sealt saate neid konteinereid käivitada ühe käsuga.

Võtame veel ühe näite:

Oletame, et soovite avaldada ajaveebi, selleks kasutate CMS-i (sisuhaldussüsteem) ja Wordpress on kõige sagedamini kasutatav CMS. Põhimõtteliselt vajate WordPressi jaoks ühte konteinerit ja tagatipuks vajate veel ühte konteinerit MySQL-iga, see MySQL-i konteiner peaks olema seotud WordPress-konteineriga. Samuti vajame Php Myadmini jaoks veel ühte konteinerit, mis on seotud MySQL-i andmebaasiga. Põhimõtteliselt kasutatakse seda MySQL-i andmebaasile juurdepääsuks.

Kuidas oleks, kui täidaksin ülaltoodud näite praktiliselt.

Kaasatud etapid:

  1. Installige Docker Compose :
  2. Installige WordPress: Kasutame ametnikku WordPress ja MariaDB Dockeri pildid.
  3. Installige MariaDB: See on üks populaarsemaid andmebaasiservereid maailmas. Selle on teinud MySQL-i algsed arendajad. MariaDB on välja töötatud avatud lähtekoodiga tarkvarana ja relatsioonilise andmebaasina pakub see andmetele juurdepääsuks SQL-liidest.
  4. Installige PhpMyAdmin: See on PHP-s kirjutatud tasuta tarkvaratööriist, mis on mõeldud MySQL-i haldamiseks veebis.
  5. Looge WordPressi sait:

Alustame!

Dockeri koostamise installimine:

Kõigepealt installige Python Pip:

sudo apt-get install python-pip

Nüüd saate installida Docker Compose:

sudo pip installib docker-compose

Installige WordPress:

Looge WordPress kataloog:

mkdir wordpress

Sisestage see WordPress kataloog:

cd wordpress /

Selles kataloogis looge Docker Compose YAML-fail ja redigeerige seda, kasutades gedit:

sudo gedit docker-compose.yml

Kleepige allolevad koodiread sellesse yaml-faili:

wordpress: image: wordpress links: - wordpress_db: mysql portid: - 8080: 80 wordpress_db: image: mariadb keskkond: MYSQL_ROOT_PASSWORD: edureka phpmyadmin: image: corbinu / docker-phpmyadmin links: - wordpress_db: mysql portid: - 8181: 80 keskkond: MYSQL_USERNAME: juur MYSQL_ROOT_PASSWORD: edureka

Ma tean, et soovite, et ma selgitaksin seda koodi, nii et mida ma teen, võtan selle koodi väikesed lõigud ja selgitan teile, mis toimub.

wordpress_db: ... keskkond: MYSQL_ROOT_PASSWORD: edureka ...

See seab Wordpress_db konteinerisse keskkonnamuutuja nimega MYSQL_ROOT_PASSWORD teie soovitud parooliga. MariaDB Dockeri pilt on konfigureeritud selle keskkonnamuutuja kontrollimiseks selle käivitamisel ja hoolitseb DB-i seadistamise eest juurkontoga, mille parool on määratletud MYSQL_ROOT_PASSWORD.

wordpress: ... pordid: - 8080: 80 ...

Esimene pordi number on hostis olev pordi number ja teine ​​pordi number on konteineri sees olev pordi number. Niisiis, see konfiguratsioon edastab päringud hosti porti 8080 vaikeserveriserverisse 80, mis asub konteineris.

phpmyadmin: image: corbinu / docker-phpmyadmin lingid: - wordpress_db: mysql-pordid: - 8181: 80 keskkond: MYSQL_USERNAME: juur MYSQL_ROOT_PASSWORD: edureka

See haarab kogukonnaliikme corbinu käest docker-phpmyadmini, seob selle meie Wordpress_db konteineriga nimega mysql (see tähendab, et phpmyadmini konteineri sisemusest viited hostinimele mysql edastatakse meie wordpress_db konteinerisse), paljastab oma pordi 80 porti 8181 hosti süsteem ning määrab lõpuks MariaDB kasutajanime ja parooliga paar keskkonnamuutujat. See pilt ei haara automaatselt keskkonnamuutujat MYSQL_ROOT_PASSWORD WordPress_dbcontaineri keskkonnast, nagu seda teeb WordPress pilt. Tegelikult peame rea MYSQL_ROOT_PASSWORD: edureka kopeerima konteinerist wordpress_db ja seadistama kasutajanime root.

Nüüd käivitage rakenduste rühm:

dokk-komponeeri üles -d

See on kõik, mida peate tegema. Saate sel viisil lisada nii palju konteinereid kui soovite ja linkida need kõik oma äranägemise järgi.

Nüüd minge brauseris porti 8080, kasutades oma avalikku IP-d või hosti nime, nagu allpool näidatud:

kohalik host: 8080

Täitke see vorm ja klõpsake käsku WordPressi installimine.

Kui see on lõppenud, külastage uuesti oma serveri IP-aadressi (seekord pordi 8181 abil, nt localhost: 8181). Teid tervitab sisselogimisekraan phpMyAdmin:

Jätkake ja logige sisse, kasutades YAML-failis määratud kasutajanime juur ja parooli, ja saate oma andmebaasi sirvida. Märkate, et server sisaldab WordPressi andmebaasi, mis sisaldab kõiki teie WordPressi installi andmeid.

Siin lõpetan oma Docker Containeri ajaveebi. Loodan, et teile on see postitus meeldinud. Saate kontrollida muud ajaveebid ka sarjas, mis käsitlevad Dockeri põhitõdesid.

Kui leiate, et see Dockeri konteinerite ajaveeb on asjakohane, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka DevOpsi sertifitseerimiskoolitus aitab õppijatel saada SDLC-s mitmete sammude automatiseerimiseks kogemusi mitmesuguste DevOpsi protsesside ja tööriistade, nagu Puppet, Jenkins, Docker, Nagios, Ansible, Chef, Saltstack ja GIT osas.

mis on rakendus müügijõus

Kas teil on minu jaoks küsimus? Palun mainige seda kommentaaride jaotises ja pöördun teie poole.