Mikä on Docker Container? - Säilytä sovelluksesi Dockerilla



Docker Container on kevyt vaihtoehtoinen ratkaisu virtuaalikoneelle sovellusten luomiseen, käyttöönottoon ja suorittamiseen kontin sisällä.

Toivon, että olet lukenut edelliset blogini Satamatyöläinen missä olen käsitellyt Dockerin perusteet. Täällä, tässä Docker Container -blogissa, keskustelen siitä, mitä Docker Containers on ja miten se toimii. Keskitymme lähinnä Dockerin käytännön ja käyttötapauksiin.

Olen listannut tämän Docker Container -blogin aiheet:





  • Miksi tarvitsemme telakointikontteja?
  • Kuinka Docker Containers toimii?
  • Docker Containerin käyttötapaukset

Miksi tarvitsemme telakointikontteja?

Muistan sen edelleen oikein, työskentelin projektin parissa. Tuossa projektissa seurasimme mikropalveluarkkitehtuuria. Niille teistä, jotka eivät tiedä, mikä on mikropalvelu, älä huoli, minä annan sinulle johdannon siihen.

Mikropalvelujen idea on, että tietyntyyppisten sovellusten rakentaminen ja ylläpitäminen on helpompaa, kun ne jaetaan pienempiin, yhdistettäviin paloihin, jotka toimivat yhdessä. Jokainen komponentti kehitetään erikseen, ja sovellus on silloin yksinkertaisesti sen komponenttien summa.



Harkitse alla olevaa esimerkkiä:

Verkkokaupan sovellus - Docker Container - Edureka

Yllä olevassa kaaviossa on verkkokauppa, jossa on erilliset mikropalvelut käyttäjätiliä, tuoteluetteloa, tilausten käsittelyä ja ostoskoria varten.



No, tällä arkkitehtuurilla on paljon etuja:

  • Vaikka jokin mikropalvelusi epäonnistuu, koko sovelluksesi ei vaikuta siihen.
  • Sitä on helpompi hallita

On myös monia muita etuja, en käsittele paljon yksityiskohtia mikropalveluista tässä viestissä. Mutta pian aion luoda pari blogia myös mikropalveluista.

Tässä arkkitehtuurissa käytimme CentOS-virtuaalikoneita. Nuo virtuaalikoneet määritettiin kirjoittamalla pitkiä komentosarjoja. No, näiden virtuaalikoneiden määrittäminen ei ollut ainoa ongelma.

Tällaisten sovellusten kehittäminen edellyttää useiden mikropalveluiden käynnistämistä yhdessä koneessa. Joten jos aloitat viisi näistä palveluista, tarvitset viisi virtuaalikoneita kyseiselle koneelle. Harkitse alla olevaa kaaviota:

Toinen ongelma on melko yleinen, tiedän, että monet teistä voivat liittyä siihen. Sovellus toimii kehittäjän kannettavalla tietokoneella, mutta ei testauksessa tai tuotannossa. Tämä voi johtua siitä, että ei pidetä yhtenäistä laskentaympäristöä. Harkitse alla olevaa kaaviota:

Tämän lisäksi oli monia muita ongelmia, mutta mielestäni nämä ongelmat riittävät selittämään sinulle Docker Containersin tarvetta.

Opi kuinka Docker-kontit ovat parempia kuin virtuaalikoneet

Joten kuvittele, jos annan 8 Gt RAM-muistia kaikille virtuaalikoneilleni, ja minulla on 5 mikropalvelua eri virtuaalikoneilla. Siinä tapauksessa nämä virtuaalikoneet vaativat 40 Gt RAM-muistia. No, nyt vaadin, että isäntäkoneeni kokoonpanot ovat erittäin korkeat, lähes 44 Gt RAM-muistia pitäisi olla siellä isäntäkoneessani. Tämä ei tietenkään ole kestävä ratkaisu tällaiselle arkkitehtuurille, koska tuhlaan täällä paljon resursseja.

Hienoa, minulla on paljon resursseja hukkaan, mutta silti minulla on epäjohdonmukaisuusongelma ohjelmiston toimituksen elinkaaressa (SDLC). Minun on määritettävä nämä virtuaalikoneet testissä sekä tuotantoympäristössä. Jossain prosessin aikana joitain ohjelmistoja ei päivitetty testipalvelimessa, ja Dev-tiimi käyttää ohjelmiston päivitettyä versiota. Tämä johtaa konflikteihin.

Entä jos käytän 100 virtuaalikoneita, kunkin virtuaalikoneen määrittäminen vie paljon aikaa, ja samalla se on taipumus virheisiin.

Anna nyt ymmärtää, mikä on Docker Container ja miten se toimii, ja miten se ratkaisi ongelmani.

Mikä on Docker Container?

Docker on työkalu, joka on suunniteltu helpottamaan sovellusten luomista, käyttöönottoa ja käyttöä konttien avulla.

Voit luoda Docker Containers, nämä kontit sisältävät kaikki sovelluksellesi tai mikropalvelukselleni tarvittavat binäärit ja kirjastot. Joten hakemuksesi on läsnä säiliössä tai olet säilöinyt sovelluksesi. Samaa säiliötä voidaan nyt käyttää Test and Prod -ympäristössä.

Docker Containers on kevyt ratkaisu virtuaalikoneisiin, ja se käyttää isäntä-käyttöjärjestelmää. Parasta on, että sinun ei tarvitse jakaa RAM-muistia etukäteen Docker Container -laitteelle, se vie sen tarvittaessa. Joten Docker Containerin kanssa minun ei tarvitse huolehtia resurssien tuhlauksesta.

Ymmärretään nyt, kuinka Docker Container toimii.

Kuinka Docker Container toimii?

Alla oleva kaavio on periaatteessa tapa käyttää Dockeria. Oletan, että sinulla on idea Docker Image- ja Dockerfile-tiedostoista.

Kaverit, tiedän, että kaavio näyttää hieman monimutkaiselta, mutta luota minuun, että se ei ole niin monimutkainen. Alla on kaavion selitys, jopa sen jälkeen, kun sinusta tuntuu, että sitä on vaikea ymmärtää, voit kommentoida epäilyksesi, käsittelen näitä kysymyksiä ASAP.

  • Kehittäjä kirjoittaa ensin projektikoodin Docker-tiedostoon ja rakentaa sitten kuvan kyseisestä tiedostosta.
  • Tämä kuva sisältää koko projektikoodin.
  • Nyt voit ajaa tämän Docker-kuvan luoda niin monta säilöä kuin haluat.
  • Tämä Docker-kuva voidaan ladata Docker-keskittimeen (se on pohjimmiltaan Docker-kuviesi pilvivarasto, voit pitää sen julkisena tai yksityisenä).
  • Tämän Docker-kuvan Docker-keskittimestä voivat vetää muut joukkueet, kuten QA tai Prod.

Tämä paitsi estää resurssien tuhlaamisen, myös varmistaa, että kehittäjän kannettavassa tietokoneessa oleva tietokoneympäristö toistetaan myös muissa tiimeissä. Minusta tuntuu nyt, minun ei tarvitse kertoa sinulle, miksi tarvitsemme Dockeria.

c ++ - algoritmilajittelu

Tämä oli yksi tapa käyttää sitä, luulen, että teidän on oltava uteliaita tietämään, kuinka käytin Dockeria ratkaisemaan mikropalvelujen ongelmani. Anna minun antaa sinulle yleiskatsaus samasta.

Alla on kaavion selitys:

  • Ensinnäkin kirjoitimme monimutkaiset vaatimukset Docker-tiedostoon.
  • Sitten työnnimme sen GitHubiin.
  • Sen jälkeen käytimme CI-palvelinta (Jenkins).
  • Tämä Jenkins-palvelin vetää sen alas Gitistä ja rakentaa tarkan ympäristön. Tätä käytetään sekä tuotantopalvelimissa että testipalvelimissa.
  • Asensimme sen vaiheistamiseen (Se viittaa ohjelmiston asentamiseen palvelimille testausta varten, ennen kuin asennat ne kokonaan tuotantoon.) Testaajien ympäristöihin.
  • Pohjimmiltaan vietimme tuotannossa juuri sen, mikä meillä oli kehityksessä, testauksessa ja vaiheistamisessa.

On todella reilua sanoa, että Docker teki elämästäni helpon.

No, tämä oli yritykseni tarina, katsotaanpa Indianan yliopiston tapaustutkimusta. Kuinka Docker ratkaisi ongelmansa.

Indianan yliopiston tapaustutkimus:

Indiana University on usean kampuksen julkinen yliopistojärjestelmä Indianan osavaltiossa Yhdysvalloissa.

Ongelma

He käyttivät mukautettuja komentosarjoja sovellusten käyttöönottoon virtuaalikoneessa.

Heidän ympäristö oli optimoitu heidän vanhoille Java-pohjaisille sovelluksilleen. Heidän kasvava ympäristö sisältää uusia tuotteita, jotka eivät ole pelkästään Java-pohjaisia. Saadakseen parhaan mahdollisen kokemuksen opiskelijoille yliopiston oli aloitettava sovellusten modernisointi.

Yliopisto halusi parantaa tapaa, jolla he suunnittelevat sovelluksia siirtymällä sovelluksiinsa mikropalvelupohjaiseen arkkitehtuuriin.

Turvallisuutta tarvittiin opiskelijoiden tiedoille, kuten SSN-tunnuksille ja opiskelijoiden terveystiedoille.

Ratkaisu:

Docker Data Center (DDC) on käsitellyt kaikki ongelmat, ota huomioon seuraava kaavio:

Dockerin luotettu rekisteri - Se tallentaa Docker-kuvat.

UCP (Universal Control Plane) -verkkokäyttöliittymä - Auttaa hallitsemaan koko klusteria yhdestä paikasta. Palvelut otetaan käyttöön UCP-web-käyttöliittymällä DTR: ään (Docker Trusted Registry) tallennettuihin Docker-kuviin.

IT-ryhmät käyttävät Universal Control Plane -ohjelmaa Dockerin asentamien ohjelmistojen tarjoamiseen isäntiin ja asentavat sovelluksensa tarvitsematta tehdä manuaalisia vaiheita koko infrastruktuurinsa määrittämiseksi.

UCP ja DTR integroituvat LDAP-palvelimensa kanssa tarjotakseen pääsyn sovelluksiinsa nopeasti.

Toivon, että olette lukeneet edelliset blogit oppiaksesi Dockerin perusteet.

Nyt selitän sinulle, kuinka voimme käyttää Docker Composea monisäiliösovelluksiin.

Docker-kädet:

Oletan, että olet asentanut Dockerin.Käytän Docker Composea tässä viestissä, alla olen antanut pienen johdannon Docker Composelle.

Docker-sävellys: Se on työkalu monikonttien Docker-sovellusten määrittelemiseen ja käyttämiseen. Docker Compose -sovelluksen avulla voit määrittää Compose-tiedoston avulla sovelluksesi palvelut. Sitten yhdellä komennolla voit luoda ja käynnistää kaikki palvelut kokoonpanostasi.

Oletetaan, että sinulla on useita sovelluksia eri säiliöissä ja kaikki nämä säilöt on linkitetty toisiinsa. Joten et halua suorittaa näitä kontteja yksitellen. Mutta haluat suorittaa nämä kontit yhdellä komennolla. Siellä Docker Compose tulee kuvaan. Sen avulla voit käyttää useita sovelluksia eri säiliöissä yhdellä komennolla. eli telakka-säveltää.

Esimerkki: Kuvittele, että sinulla on erilaisia ​​säilöjä, joista toinen käyttää verkkosovellusta, toinen käyttää postgresia ja toinen uudelleenkäynnistystä YAML-tiedostossa. Tätä kutsutaan docker compose -tiedostoksi, sieltä voit suorittaa nämä kontit yhdellä komennolla.

Otetaan vielä yksi esimerkki:

Oletetaan, että haluat julkaista blogin, sillä käytät CMS: ää (Content Management System), ja Wordpress on yleisimmin käytetty CMS. Periaatteessa tarvitset yhden säilön WordPressille ja tarvitset vielä yhden kontin MySQL: ksi taustapäätä varten, että MySQL-säilö tulisi linkittää Wordpress-säilöön. Tarvitsemme myös yhden uuden kontin Php Myadminille, joka linkitetään MySQL-tietokantaan, periaatteessa sitä käytetään MySQL-tietokantaan pääsemiseen.

Entä toteuttaisin yllä mainitun esimerkin käytännössä.

Vaiheet:

  1. Asenna Docker Compose :
  2. Asenna WordPress: Käytämme virkamiestä WordPress ja MariaDB Docker-kuvat.
  3. Asenna MariaDB: Se on yksi suosituimmista tietokantapalvelimista maailmassa. Sen ovat tehneet MySQL: n alkuperäiset kehittäjät. MariaDB on kehitetty avoimen lähdekoodin ohjelmistona ja relaatiotietokantana tarjoaa SQL-käyttöliittymän tietojen käyttämiseen.
  4. Asenna PhpMyAdmin: Se on ilmainen PHP-ohjelmistolla kirjoitettu ohjelmistotyökalu, joka on tarkoitettu hoitamaan MySQL: n hallintaa verkon kautta.
  5. Luo WordPress-sivusto:

Aloitetaan!

Asenna Docker Compose:

Asenna ensin Python Pip:

sudo apt-get asenna python-pip

Nyt voit asentaa Docker Compose:

sudo pip asenna docker-compose

Asenna WordPress:

Luo WordPress-hakemisto:

mkdir wordpress

Kirjoita tämä wordpress-hakemisto:

cd wordpress /

Luo tähän hakemistoon Docker Compose YAML -tiedosto ja muokkaa sitä sitten geditillä:

sudo gedit docker-compose.yml

Liitä seuraavat koodirivit siihen yaml-tiedostoon:

wordpress: image: wordpress links: - wordpress_db: mysql-portit: - 8080: 80 wordpress_db: image: mariadb-ympäristö: MYSQL_ROOT_PASSWORD: edureka phpmyadmin: kuva: corbinu / docker-phpmyadmin links: - wordpress_db: mysql-portit: - 8181: 80 ympäristö: MYSQL_USERNAME: juuri MYSQL_ROOT_PASSWORD: edureka

Tiedän, että haluat minun selittävän tämän koodin, joten aion tehdä pieniä osia tästä koodista ja selittää sinulle mitä tapahtuu.

wordpress_db: ... ympäristö: MYSQL_ROOT_PASSWORD: edureka ...

Tämä asettaa ympäristömuuttujan Wordpress_db-säilöön MYSQL_ROOT_PASSWORD haluamallasi salasanalla. MariaDB Docker -kuva on määritetty tarkistamaan tämä ympäristömuuttuja, kun se käynnistyy, ja huolehtii DB: n asettamisesta pääkäyttäjätilillä, jonka salasana on MYSQL_ROOT_PASSWORD.

wordpress: ... portit: - 8080: 80 ...

Ensimmäinen portin numero on isännän portin numero ja toinen portin numero on säiliön sisällä oleva portti. Joten tämä kokoonpano välittää pyynnöt isännän portille 8080 oletusverkkopalvelimen portille 80 säilön sisällä.

phpmyadmin: image: corbinu / docker-phpmyadmin links: - wordpress_db: mysql portit: - 8181: 80 ympäristö: MYSQL_USERNAME: juuri MYSQL_ROOT_PASSWORD: edureka

Tämä tarttuu docker-phpmyadminiin, jonka jäsen on corbinu, linkittää sen wordpress_db-säiliöön nimellä mysql (tarkoittaen phpmyadmin-kontin sisältä viittauksia isäntänimeen mysql välitetään edelleen wordpress_db-konttiimme), paljastaa porttinsa 80 portissa 8181 isäntäjärjestelmä, ja lopuksi asettaa pari ympäristömuuttujaa MariaDB-käyttäjänimellämme ja salasanallamme. Tämä kuva ei tartu MYSQL_ROOT_PASSWORD-ympäristömuuttujaan automaattisesti wordpress_dbcontainer -ympäristöstä, kuten wordpress-kuva tekee. Meidän on itse asiassa kopioitava MYSQL_ROOT_PASSWORD: edureka -rivi wordpress_db-säilöstä ja asetettava käyttäjänimi juuriksi.

Käynnistä nyt sovellusryhmä:

telakka-säveltää ylös -d

Se on kaikki mitä sinun on tehtävä. Voit lisätä niin monta konttia kuin haluat tällä tavalla, ja linkittää ne kaikki haluamallasi tavalla.

Siirry nyt selaimessa porttiin 8080 käyttämällä julkista IP-osoitettasi tai isäntänimeäsi alla olevan kuvan mukaisesti:

paikallinen isäntä: 8080

Täytä tämä lomake ja napsauta asenna WordPress.

Kun se on valmis, siirry palvelimesi IP-osoitteeseen uudelleen (tällä kertaa käyttämällä porttia 8181, esim. Localhost: 8181). PhpMyAdmin-kirjautumisnäyttö tervehtii sinua:

Kirjaudu sisään käyttämällä YAML-tiedostossa määrittämääsi käyttäjätunnusta ja salasanaa, ja voit selata tietokantaa. Huomaat, että palvelin sisältää Wordpress-tietokannan, joka sisältää kaikki WordPress-asennuksesi tiedot.

Tässä lopetan Docker Container -blogini. Toivottavasti olet nauttinut tästä viestistä. Voit tarkistaa muut blogit myös sarjassa, jotka käsittelevät Dockerin perusteita.

Jos pidit tämän Docker Container -blogin merkityksellisenä, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutus auttaa oppijoita saamaan asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Docker, Nagios, Ansible, Chef, Saltstack ja GIT SDLC: n useiden vaiheiden automatisoimiseksi.

Onko sinulla kysymys minulle? Mainitse se kommenttiosassa ja palaan sinuun.