Ohjelmointi

Docker-opetusohjelma: Aloita Docker-verkkojen käyttö

Dockerin yleinen käyttötapaus on verkkopalvelut, ja Dockerilla on oma verkkomalli, jonka avulla kontit voivat puhua sekä toisilleen että ulkomaailmalle.

Alun perin Docker-kontit oli verkotettava yhteen käsin tai altistettava manuaalisesti ulkomaailmalle. Nykyinen verkkomalli antaa konttien löytää toistensa automaattisesti samalta isännältä (tai eri isäntien välillä) ja altistua maailmalle hallitummin.

Docker toimittaa kehittäjille konttiverkostointia neljällä tavalla. Kaksi ensimmäistä, silta ja päällekkäin verkot kattavat tuotannon yleisimmät käyttötapaukset. Kaksi muuta, isäntä ja Macvlan verkostoja, jotka kattavat harvinaisemmat tapaukset.

Docker-verkko: Silta-verkot

Silta-verkot anna samalla Docker-isännällä toimivien konttien olla yhteydessä toisiinsa. Uudessa Docker-ilmentymässä on oletussilta nimeltä nimeltä silta, ja oletuksena kaikki äskettäin aloitetut säilöt muodostavat yhteyden siihen.

silta Verkossa on monia käteviä valmiiksi asetettuja oletusasetuksia, mutta ne saattavat tarvita hienosäätöä tuotannossa. Esimerkiksi kontit päällä silta automaattisesti kaikki portit altistuvat toisilleen, mutta yksikään ulkomaailmalle. Tästä on hyötyä, kun sinun on testattava säilöjen välistä viestintää, mutta ei suoran palvelun käyttöönottoon.

Saat parhaat tulokset luomalla oman siltaverkon. Käyttäjän määrittelemillä siltoilla on monia ominaisuuksia silta silta ei:

  • DNS-tarkkuus toimii automaattisesti mukautetun sillan säilöjen välillä. Tällä tavalla sinun ei tarvitse käyttää raakoja IP-osoitteita niiden väliseen kommunikointiin kuten silta silta. Säiliöt voivat etsiä muita säilöjä DNS: n kautta käyttämällä säilön nimeä.
  • Säiliöitä voidaan lisätä ja poistaa mukautetusta sillasta, kun ne ovat käynnissä.
  • Ympäristömuuttujat voidaan jakaa mukautetun sillan säilöjen välillä.

Lyhyesti sanottuna voit aloittaa konttien käyttämisen oletussillalla, mutta vakavien tuotantotöiden yhteydessä haluat luoda mukautetun sillan.

Docker-verkko: Päällekkäiset verkot

Silta-verkot on tarkoitettu samalle isännälle tarkoitettuihin säilöihin. Päällekkäin verkot on tarkoitettu eri isäntien, kuten Docker-parvessa olevien, kontteille. Tällöin isäntien väliset säilöt löytävät toisensa ja kommunikoivat ilman sinun tarvitse huolehtia siitä, kuinka se asetetaan kullekin yksittäiselle osallistuvalle säilölle.

Dockerin parvi-tilassa orkesteri luo automaattisesti peittoverkon, tunkeutuminen. Oletuksena kaikki parven palvelut kiinnittyvät tunkeutuminen. Mutta kuten oletusarvo silta, tämä ei ole paras valinta tuotantojärjestelmälle, koska oletusasetukset eivät välttämättä sovi. Parasta on luoda mukautettu peittoverkko parvella tai ilman, ja liittää siihen solmut tarpeen mukaan.

Jos haluat käyttää peittoverkkoa, jossa säilöt eivät ole käynnissä parvessa, se on toinen tapa käyttää mukautettua peittoverkkoa. Huomaa, että jokaisella päällekkäisverkon Docker-isännällä on oltava oikeat portit, jotka vertaisryhmille ovat avoinna, jotta ne näkyvät, ja ilman parveketilaa jokainen solmu tarvitsee pääsyn jonkinlaiseen avainarvosäilöön.

Huomaa myös, että peittoverkot sallivat oletusarvoisesti vain 256 erillistä IP-osoitetta. Voit nostaa tätä rajaa, mutta Docker suosittelee useiden peittojen käyttöä.

Docker-verkko: Isäntäverkko

isäntä verkkoajurin avulla konttien verkkopinot kulkevat vierekkäin pinon kanssa isännässä. Verkkopalvelin portissa 80 a isäntä-verkkokontti on saatavana itse isännän portista 80.

Isäntäverkostojen suurin siuna on nopeus. Jos sinun on annettava pääsy konttiporttiin ja haluat tehdä siitä mahdollisimman lähellä käyttöjärjestelmää, tämä on oikea tapa. Mutta se tulee joustavuuden kustannuksella: Jos kartoit portin 80 säilöön, mikään muu säilö ei voi käyttää sitä kyseisessä isännässä.

Docker-verkko: Macvlan-verkko

Macvlan-verkko on tarkoitettu sovelluksille, jotka toimivat suoraan taustalla olevan fyysisen verkon kanssa, kuten verkkoliikenteen seurantasovelluksille. macvlan ohjain ei määritä vain IP-osoitetta säilölle, vaan myös fyysisen MAC-osoitteen.

Huomaa, että tämän tyyppisessä Docker-verkkoyhteydessä on monia samoja varoituksia kuin sinulla, jos esimerkiksi luot virtuaalisia MAC-osoitteita virtuaalikoneilla. Lyhyesti sanottuna Macvlan tulisi varata vain sovelluksille, jotka eivät toimi, elleivät ne luota fyysiseen verkko-osoitteeseen.

Docker-verkostoituminen: Verkkojen luominen ja hallinta

Kaikki verkon hallinta Dockerissa tapahtuu telakointiverkko komento. Monet sen alikomennot ovat samanlaisia ​​kuin muut Docker-komennot; esimerkiksi, telakointiverkko ls näyttää kaikki määritetyt verkot nykyisessä Docker-ilmentymässä:

$ docker-verkko ls VERKON TUNNUS NIMI KÄYTTÄJÄN SOVELTAMISALA 2e0adaa0ce4a silta silta paikallinen 0de3da43b973 isäntä isäntä paikallinen 724a28c6d86d ei mitään tyhjä paikallinen

Luo verkko käyttämällä luoda alikomento yhdessä --ajuri lippu osoittamaan mitä kuljettajaa käytetään (silta, päällekkäin, macvlan):

$ docker -verkko luo --driver bridge my-bridge 

Isäntäverkossa olevat säilöt eivät vaadi verkon luomista heille. Käynnistä sen sijaan kontti --verkon isäntä lippu. Kaikki säiliön prosessit kuuntelevat valmiiksi määritettyjä portteja, joten varmista, että ne on määritetty ensin.

Verkon luomisvaihtoehtoihin sisältyy myös sen aliverkon, IP-osoitealueen ja verkkoyhdyskäytävän määrittely, aivan kuten verkon luominen muilla tavoin.

Säiliöt toimivat oletuksena silta verkkoon. Jos haluat käyttää tiettyä verkkoa, käytä vain --verkko lippu käynnistettäessä säilöä ja määritä verkon nimi.

Voit myös yhdistää käynnissä olevan säilön verkkoon:

$ docker -verkkoyhteys silta my_container

Tämä kiinnittäämy_container että silta säilyttäen kaikki jo olemassa olevat verkkoyhteydet.

Kun kontti pyöritetään alas, kaikki siihen liittyvät verkot jätetään ehjiksi. Jos haluat poistaa verkkoja manuaalisesti, voit tehdä sen telakointiverkko rm komento tai käytä telakointiverkon karsiminen poistaa kaikki verkot, joita ei enää käytetä isännässä.

Docker-verkko ja Kubernetes-verkko

Jos katsot Kubernetesia orkesteriratkaisuna, mutta sinulla on jo melko paljon työtä upotettuna Docker-verkkoasetuksiin, et ole innoissaan siitä, että Dockerin ja Kubernetesin verkkovierailujen välillä ei ole henkilökohtaista kirjeenvaihtoa.

Yksityiskohdat on kuvattu Kubernetes-dokumentaatiossa, mutta lyhyt versio on, että niillä on pohjimmiltaan erilaiset mallit verkkoresurssien jakamiselle ja hallinnalle. Joten sinun on suunniteltava Kubernetes-kohtainen verkkoasetukset sovelluksellesi.

Yksi mahdollinen puolivälissä oleva lähestymistapa on käyttää Kubernetes Container Network Interface (CNI) -laajennusta, joka toimii Dockerin omien verkko-ohjainten kanssa. Mutta tämä on parhaimmillaan väliaikainen ratkaisu; jossain vaiheessa sinun on rakennettava Kubernetes-projektisi käyttämällä omia verkkometaforojaan sisältäpäin.