Docker Networking - Tutustu siihen, miten kontit ovat yhteydessä toisiinsa



Opi kaikki Docker-verkkotoiminnoista ymmärtämällä Container Network -mallia ja toteuttamalla se käytännön avulla.

Nykymaailmassa yritykset ovat olleet innokkaita konttien käsittelyyn, mikä vaatii vahvaa verkostointitaitoa konttiarkkitehtuurin oikeaan konfigurointiin, ja näin otetaan käyttöön Docker Networking -konsepti.

Tässä Docker Networking -blogissa käydään läpi seuraavat aiheet:





Mikä on Docker?

Dockerin ymmärtämiseksi sinun on tiedettävä, miten sovellukset otettiin käyttöön aikaisemmin ja miten sovellukset otetaan käyttöön nyt konttien avulla.

Sovellusten käyttöönotto vanhalla ja uudella tavalla - Docker Networking - Edureka



joukko luokan esineitä java

Kuten yllä olevasta kaaviosta näet, vanhalla tavalla oli sovelluksia isännässä.Niinpä n lukumäärä sovelluksia jakaa kyseisessä käyttöjärjestelmässä olevat kirjastot.Säilöinnin yhteydessä käyttöjärjestelmässä on kuitenkin ydin, joka on ainoa asia, joka tulee olemaan yhteistä kaikkien sovellusten välillä.Joten sovellukset eivät voi käyttää toistensa kirjastoja.

Niin, Satamatyöläinen yksinkertaisesti sanottuna on avoin alusta sovellusten kehittämiseen, toimittamiseen ja käyttämiseen, jonka avulla käyttäjä voi erottaa sovellukset infrastruktuureista astiat toimittaa ohjelmistoja nopeasti.

Joten miten nämä kontit kommunikoivat keskenään eri tilanteissa?



No, se tulee Docker Networkingin kautta.

Docker-verkko

Ennen kuin sukelan syvälle Docker Networkingiin, haluan näyttää sinulle Dockerin työnkulun.

Kuten yllä olevasta kaaviosta näet. Kehittäjä kirjoittaa koodin, joka määrittelee sovellusvaatimukset tai riippuvuudet helposti kirjoitettavaan Docker-tiedostoon, ja tämä Docker-tiedosto tuottaa Docker-kuvat. Joten, mitä riippuvuuksia tietylle sovellukselle vaaditaan, on tässä kuvassa.

Nyt Docker Containers ovat vain Docker Image -ohjelman ajonaikaisia ​​esiintymiä. Nämä kuvat ladataan Docker Hubiin (Docker Imagesin Git-arkisto), joka sisältää julkisia / yksityisiä arkistoja.

Joten julkisista arkistoista voit myös vedä kuvasi ja ladata omat kuvasi Docker Hubiin. Sitten Docker Hubista erilaiset ryhmät, kuten laadunvarmistus- tai tuotantotiimit, vetävät kuvan ja valmistavat omat kontinsa. Nämä yksittäiset säilöt kommunikoivat keskenään verkon kautta tarvittavien toimintojen suorittamiseksi, ja tämä ei ole muuta kuin Docker Networking.

Joten voit määritellä Docker Networkingin tietoliikennekäytäväksi, jonka kautta kaikki eristetyt kontit kommunikoivat keskenään eri tilanteissa tarvittavien toimintojen suorittamiseksi.

Mitkä ovat mielestäsi Docker Networkingin tavoitteet?

Docker Networkingin tavoitteet

Joustavuus - Docker tarjoaa joustavuutta mahdollistamalla minkä tahansa määrän sovelluksia eri alustoilla kommunikoida keskenään.

Alustojen välinen - Dockeria voidaan käyttää helposti alustoilla, jotka toimivat eri palvelimilla Docker Swarm Clustersin avulla.

Skaalautuvuus - Docker on täysin hajautettu verkko, jonka avulla sovellukset voivat kasvaa ja laajentaa yksilöllisesti samalla, kun varmistetaan suorituskyky.

Hajautettu - Docker käyttää hajautettua verkkoa, joka mahdollistaa sovellusten levittämisen ja saatavuuden. Jos säilö tai isäntä puuttuu yhtäkkiä resurssivarastostasi, voit joko tuoda lisää resursseja tai siirtää edelleen käytettävissä oleviin palveluihin.

Käyttäjäystävällinen - Docker helpottaa palveluiden käyttöönoton automatisointia, mikä tekee niistä helppokäyttöisiä jokapäiväisessä elämässä.

Tuki - Docker tarjoaa valmiita tukia. Joten kyky käyttää Docker Enterprise Editionia ja saada kaikki toiminnot erittäin helpoksi ja suoraviivaiseksi, tekee Docker-alustasta erittäin helppokäyttöisen.

Yllä olevien tavoitteiden ottamiseksi tarvitset jotain, joka tunnetaan nimellä Container Network Model.

Haluatko tutustua erilaisiin DevOps-vaiheisiin?

Konttiverkon malli (CNM)

Ennen kuin kerron sinulle, mikä tarkalleen on konttiverkon malli, anna minun kertoa sinulle Libnetworkista, jota tarvitaan ennen kuin ymmärrät CNM: n.

Libnetwork on avoimen lähdekoodin Docker-kirjasto, joka toteuttaa kaikki CNM: n muodostavat avainkäsitteet.

Niin, Konttiverkon malli (CNM) standardoi vaiheet, joita tarvitaan verkkoyhteyksien tarjoamiseksi monille verkkoajureille. CNM vaatii hajautetun avainarvosäilön, kuten konsoli, verkon kokoonpanon tallentamiseksi.

CNM: ssä on liitännät IPAM-laajennuksille ja verkkolaajennuksille.

IPAM-laajennussovellusliittymiä käytetään luomaan / poistamaan osoitealueita ja jakamaan / jakamaan säilön IP-osoitteita, kun taas verkkolaajennussovellusliittymiä käytetään verkkojen luomiseen / poistamiseen ja konttien lisäämiseen / poistamiseen verkkoista.

CNM on rakennettu pääasiassa viiteen kohteeseen: verkko-ohjain, ohjain, verkko, päätepiste ja hiekkalaatikko.

Säilöverkkomallin objektit

Verkko-ohjain: Tarjoaa lähtökohdan Libnetworkiin, joka paljastaa yksinkertaiset sovellusliittymät Docker Enginen käyttöön verkostojen jakamiseksi ja hallitsemiseksi. Koska Libnetwork tukee useita sisäänrakennettuja ja etäohjaimia, Network Controller antaa käyttäjille mahdollisuuden liittää tietty ohjain tiettyyn verkkoon.

Kuljettaja: Omistaa verkon ja on vastuussa verkon hallinnasta siten, että mukana on useita kuljettajia, jotka täyttävät erilaiset käyttötapaukset ja käyttöönottotapaukset.

Verkko: Tarjoaa yhteyden päätepisteiden ryhmän välillä, jotka kuuluvat samaan verkkoon ja eristävät muista. Joten aina kun verkko luodaan tai päivitetään, vastaavalle ohjaimelle ilmoitetaan tapahtumasta.

Päätepiste: Tarjoaa yhteyden verkossa oleville säiliöille altistuville palveluille muihin verkon muiden säiliöiden tarjoamiin palveluihin. Päätepiste edustaa palvelua eikä välttämättä tiettyä säilöä, Endpointilla on globaali laajuus myös klusterissa.

Hiekkalaatikko: Luotu, kun käyttäjät pyytävät luomaan päätepisteen verkkoon. Hiekkalaatikossa voi olla useita päätepisteitä, jotka on liitetty eri verkkoihin, jotka edustavat säilön verkkoasetuksia, kuten IP-osoite, MAC-osoite, reitit, DNS.

Joten nämä olivat CNM: n viisi pääkohdetta.

Sallikaa minun kertoa teille Docker-verkkotoiminnassa mukana olevat verkkoajurit.

Haluatko viedä DevOps-oppimisen uudelle tasolle?

Verkko-ohjaimet

Verkko-ohjaimia on pääasiassa 5: Bridge, Host, None, Overlay, Macvlan

mitä math.abs tekee java

Silta: Silta-verkko on yksityinen oletusarvoinen sisäinen verkko, jonka docker on luonut isännälle. Joten kaikki säilöt saavat sisäisen IP-osoitteen ja nämä säilöt voivat käyttää toisiaan käyttämällä tätä sisäistä IP-osoitetta. Bridge-verkkoja käytetään yleensä, kun sovelluksesi toimivat erillisissä säilöissä, joiden on oltava yhteydessä toisiinsa.

Isäntä : Tämä ohjain poistaa verkkoerotuksen telakointiaseman ja telakointiasemien välillä, jotta isännän verkkoyhteyttä voidaan käyttää suoraan. Joten tämän avulla et voi käyttää useita verkkokontteja samassa isännässä samassa portissa kuin portti on nyt yhteinen kaikille isäntäverkon säilöille.

Ei mitään : Tällaisessa verkossa kontteja ei ole liitetty mihinkään verkkoon, eikä niillä ole pääsyä ulkoiseen verkkoon tai muihin säilöihin. Joten tätä verkkoa käytetään, kunhaluat poistaa verkkopinon kokonaan käytöstä säilössä, jaluo vain loopback-laite.

Päällekkäin : Luo sisäinen yksityinen verkko, joka ulottuu kaikkien parvekeklusteriin osallistuvien solmujen yli. Joten, Overlay-verkot helpottavat kommunikointia parvekepalvelun ja erillisen kontin tai kahden erillisen kontin välillä eri Docker Daemonissa.

Macvlan: Voit määrittää MAC-osoitteen säilölle, jolloin se näkyy fyysisenä laitteena verkossa. Sitten Docker-demoni reitittää liikenteen kontteihin MAC-osoitteidensa mukaan. Macvlan-ohjain on paras valinta, kun oletetaan olevan yhteydessä suoraan fyysiseen verkkoon Docker-isännän verkkopinon sijaan.

Selvä, joten se oli kaikki teoria, jota tarvitaan Docker Networkingin ymmärtämiseen. Anna minun siirtyä eteenpäin ja näyttää käytännössä miten verkot luodaan ja säilöt kommunikoivat keskenään.

Hands-On

Joten, olettaen, että kaikki teistä ovat asentaneet Dockerin järjestelmiinne, minulla on esiteltävä skenaario.

Oletetaan, että haluat tallentaa kurssien nimet ja kurssitunnukset, joihin tarvitset verkkosovelluksen. Periaatteessa tarvitset yhden säilön verkkosovelluksia varten ja tarvitset vielä yhden kontin MySQL: ksi backendille, että MySQL-säilö tulisi linkittää verkkosovellussäiliöön.

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

Vaiheet:

  • Alusta Docker Swarm muodostaaksesi Swarm-klusterin.
  • Luo peittoverkko
  • Luo palveluja sekä verkkosovellukselle että MySQL: lle
  • Yhdistä sovellukset verkon kautta

Aloitetaan!

Vaihe 1: Alusta Docker Swarm koneessa.

telakka-parvi init --advertise-addr 192.168.56.101

–Advertise-addr-lippu määrittää hallintasolmun julkaisemaan osoitteensa nimellä 192.168.56.101. Muiden parven solmujen on voitava käyttää hallintaa IP-osoitteessa.

Vaihe 2: Jos haluat nyt liittyä tähän johtosolmuun työntekijäsolmuun, kopioi linkki, jonka saat, kun alustat parvia työntekijäsolmussa.
Vaihe 3: Luo peittävä verkko.

docker-verkko luo -d overlay myoverlaynetwork

Missä myoverlay on verkon nimi ja -d mahdollistaa Docker Daemonin suorittamisen taustalla.

Vaihe 4.1: Luo palvelun webapp1 ja käytä luomasi verkkoa tämän palvelun ottamiseksi käyttöön parvekeryhmässä.

telakointipalvelun luominen --name webapp1 -d - verkko myoverlaynetwork -p 8001: 80 hshar / webapp

Missä -pon tarkoitettu sataman edelleenlähetykseen,hsharon tilin nimi Docker Hubissa ja webapp on Docker Hubissa jo olevan verkkosovelluksen nimi.

Vaihe 4.2: Tarkista nyt, onko palvelu luotu vai ei.

telakointipalvelu ls

Vaihe 5.1: Luo nyt palvelu MySQL ja käytä luomaa verkkoa palvelun käyttöönottoon parvi-klusterin yli.

docker-palvelu luo --name mysql -d --netmyoverlaynetwork -p 3306: 3306 hshar / mysql: 5.5


Vaihe 5.2: Tarkista nyt, onko palvelu luotu vai ei.

telakointipalvelu ls

Vaihe 6.1: Tämän jälkeen tarkista, mikä säilö on käynnissä pääsolmussa, ja mene hshar / webapp-säilöön.

telakka ps

Vaihe 6.2: Joten voit nähdä, että vain webapp-palvelu on hallinnointisolmussa. Joten mene webapp-säiliöön.

docker exec -it container_id bash nano var / www / html / index.php

Telakointiasema ps-komento listaa molemmat säilöt niiden konttien tunnuksilla. Toinen komento sallii kyseisen säilön interaktiivisessa tilassa.

Vaihe 7: Vaihda nyt $ palvelimen käyttäjätunnus localhostista mysqliksi ja $ salasana arvosta “” ”edurekaksi. Muuta myös kaikki tarvittavat tietokannan tiedot ja tallenna index.php-tiedosto käyttämällä pikanäppäintä Ctrl + x ja sen jälkeen y tallentaa ja paina Enter.

Vaihe 8: Mene nyt mysql-säilöön, joka on käynnissä toisella solmulla.

docker exec -it container_id bash

Vaihe 9: Kun olet mennyt mysql-säilöön, kirjoita alla olevat komennot käyttääksesi tietokantaa MySQL: ssä.

Vaihe 9.1: Hanki käyttöoikeus mysql-säilöön.

mysql -u root -pedureka

Missä -u edustaa käyttäjää ja -p on koneesi salasana.

Vaihe 9.2: Luo mysql-tietokanta, jota käytetään tietojen hakemiseen webapp1: stä.

Luo tietokanta HandsOn

Vaihe 9.3: Käytä luotua tietokantaa.

KÄYTÄ HandsOn

Vaihe 9.4: Luo tähän tietokantaan taulukko, jota käytetään tietojen hakemiseen webapp1: stä.

LUO TAULUKKO kurssin_tiedot (kurssin_nimi VARCHAR (10), kurssin_ID VARCHAR (11))

Vaihe 9.5: Poistu nyt myös MySQL: stä ja kontista komennolla poistua .

Vaihe 10: Siirry selaimeesi ja kirjoita osoite nimellä paikallinen isäntä: 8001 / index.php . Tämä avaa verkkosovelluksesi. Anna nyt kurssien tiedot ja napsauta Lähetä kysely .

Vaihe 11: Kun napsautat Lähetä kysely -vaihtoehtoa, siirry solmuun, jossa MySQL-palvelusi on käynnissä, ja mene sitten säilöön.

docker exec -it container_id bash mysql -u root -pedureka KÄYTÄ HandsOn SHOW -taulukoita valitse * kurssin_tiedoista

Tämä näyttää kaikkien kurssien tulokset, joista olet täyttänyt yksityiskohdat.

mikä on savupiippu hadoopissa

Tässä lopetan Docker Networking -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, luotettu verkko-oppimisyritys, jolla on yli 450 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 ja GIT SDLC: n useiden vaiheiden automatisointiin.

Etsitkö sertifiointia DevOpsissa?

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