Portin välittäminen edelleen Dockerissa

Portin Valittaminen Edelleen Dockerissa



Docker on suosittu telakointialusta, joka telakoittaa sovelluksia ja ohjelmistoja eristettyyn ympäristöön, joka tunnetaan konttina. Suorittaessaan sovelluksia säilöissä, käyttäjien on yleensä käytettävä konttisovellusta säilön ulkopuolella. Tätä tarkoitusta varten käyttäjien on käytettävä portin edelleenlähetystekniikkaa.

Portin edelleenlähetys Dockerissa on prosessi, jonka avulla voimme paljastaa Docker-isäntäjärjestelmän konttiportin. Sen avulla voimme ajaa sovellusta eristetyssä ympäristössä ja myös tehdä siihen pääsyn käyttäjän koneen kontin ulkopuolelta.

Tämä viesti osoittaa:







Portin välittäminen edelleen Dockerissa '-p'- tai '-publish' -tunnisteen avulla

Portin välittämiseksi edelleen Dockerissa käyttäjän on julkaistava konttiportti Docker-isännässä. Suorita tätä tarkoitusta varten säilö telakointiasemassa käyttämällä ' -s ' tai ' -julkaista ' -tunniste ' telakkajuoksu ”komento.



Noudata alla olevia ohjeita saadaksesi oikean esittelyn.



Vaihe 1: Tee Dockerfile

Luo ensin tiedosto ja aseta sen nimeksi ' Docker-tiedosto ”. Tämä tiedosto sisältää tekstilliset ohjeet Docker-säilön mallin luomiseksi. Esimerkiksi, telakoidaan yksinkertainen Golang-ohjelma käyttämällä alla olevaa Docker-tiedoston katkelmaa:





Golangista: 1.8

TYÖOHJ / mennä / src / sovellus

KOPIO main2.go .

RUN mene rakentamaan -O verkkopalvelin .

PALJISTA 8080

CMD [ './verkkopalvelin' ]

Annetussa katkelmassa:

  • ' FROM ” -komentoa käytetään peruskuvan asettamiseen.
  • ' TYÖOHJ ” määrittää säilön työhakemiston.
  • ' KOPIO ” -komento luo kopion ohjelmatiedostosta säilön määrittämälle polulle.
  • ' JUOSTA ”-komento suorittaa määritetyn komennon säilössä.
  • ' PALJISTA ”-komento määrittää portin, jossa konttia kuunnellaan.
  • ' CMD ” määrittää säilön suoritettavat kohdat.

Vaihe 2: Luo Golang-ohjelma

Luo seuraavaksi toinen tiedosto nimeltä ' main2.go ' ja liitä alla toimitettu Golang-ohjelma, joka tulostaa yksinkertaisen merkkijonon porttiin ' 8080 ”:



pääpaketti

tuonti (

'fmt'

'Hirsi'

'net/http'

)

toimintokäsittelijä ( Sisään http.ResponseWriter, r * http.Pyyntö ) {

html := `

DOCTYPE html >

< html >

< pää >

< otsikko > Hei Golang ! otsikko >

< tyyli >

kehon {

taustaväri: #D2B48C;

}

.container {

tekstin tasaus: keskellä;

täyte: 50px;

}

tyyli >

pää >

< kehon >

< div luokkaa = 'kontti' >

< h1 > Hei ! Tervetuloa LinuxHint-opetusohjelmaan h1 >

div >

kehon >

html >`

w.Header ( ) .Aseta ( 'Sisältötyyppi' , 'teksti/html' )

fmt.Fprint ( Sisään , html )

}

func main ( ) {

http.HandleFunc ( '/' , käsittelijä )

loki.Kohtalovaa ( http.ListenAndServe ( '0.0.0.0:8080' , nolla ) )

}

Vaihe 3: Luo säilön tilannekuva

Luo nyt tilannekuva säilölle yllä määritetystä Docker-tiedostosta. Tätä tarkoitusta varten siirry ensin hakemistoon, jossa Docker-tiedosto luodaan käyttämällä ' cd 'komento:

Luo seuraavaksi uusi säilökuva annetulla komennolla:

telakkarakennelma -t golang-img .

Annettu tulos osoittaa, että kuva on luotu annetun koontikontekstin mukaisesti.

Vaihe 4: Välitä isäntäportti konttiporttiin

Suorita nyt säilö ja välitä isäntäportti konttiporttiin, jotta pääset dockerize-sovellukseen kontin ulkopuolella paikallisessa koneessa. Suorita tätä tarkoitusta varten 'docker run –nimi -p : 'komento:

telakkajuoksu --nimi jatka-jatkoa -s 8080 : 8080 golang-img

Täällä ' -s ' -lippua käytetään säilön suoritusportin julkaisemiseen telakointikoneessa:

Vaihe 5: Vahvistus

Tarkastele käynnissä olevia säilöjä käyttämällä ' telakka ps ”:

satamatyöläinen ps

Alla olevassa tuloksessa konttisovellus kuuntelee käytettävissä olevia verkkoliitäntöjä ' 0.0.0.0 ' julkaistussa portissa ' 8080 ”. Se tarkoittaa, että portti välitetään isäntäkoneen käynnissä olevalle sovellukselle:

Käynnistä nyt selain ja siirry kohtaan ' http://localhost:8080/ ” ja tarkista, onko porttivälitystekniikka käytössä vai ei ja onko konttisovellusta saatavilla isäntäjärjestelmän kontin ulkopuolella:

Täällä olemme onnistuneesti välittäneet isäntäportin konttiporttiin ja sovellus on käytettävissä telakointiasemassa.

Portin välittäminen edelleen Dockerissa Docker Compose -sovelluksella

Jos haluat välittää konttiportin isännälle päästäkseen konttisovellukseen kontin ulkopuolelta, käyttäjä voi käyttää ' portti ” näppäile yaml-tiedoston kirjoitus. Docker compose on Docker-palvelu, jonka avulla voimme ajaa erilaisia ​​palveluita ja sovelluksia eri säilöissä. Käyttämällä ' docker-compose.yml ”-tiedosto, käyttäjä voi myös välittää konttiportin isäntäkoneelle ja muodostaa sovellusyhteyden ulkomaailmaan.

Katso kuvat alla olevasta menettelystä.

Vaihe 1: Luo kirjoitustiedosto

Luo ensin tiedosto nimeltä ' docker-compose.yml ” tiedosto ja lisää tiedostoon seuraava sisältö:

versio: '3'

palvelut:

web:

rakentaa:.

portit:

- 8080 : 8080

Yllä olevassa katkelmassa ' portit ” -näppäintä käytetään yhdistämään isäntä konttiporttiin. Tässä ensimmäinen arvo on isäntäportti ja toinen arvo on konttiportti.

Vaihe 2: Käynnistä sovellus

Kun olet määrittänyt ohjeet kirjoitustiedostossa, käynnistä sovellus säilössä käyttämällä ' telakka-säveltää 'komento:

telakka-säveltää

Vaihe 3: Vahvistus

Varmista, että luettele kirjoitussäilöt käyttämällä ' telakka-kirjoitus ps 'komento:

telakka-säveltäminen ps -a

Tarkistaaksesi, onko säilö käytettävissä isäntäkoneella, siirry kohtaan ' http://localhost:8080/ ” URL. Tässä näet, että olemme lähettäneet edelleen konttiportin isännässä:

Portin välittäminen tiettyyn verkkoon

Siirtääkseen konttiportin tiettyyn verkkoon käyttäjän on määritettävä verkko, jossa hän haluaa käyttää konttia käyttämällä ' -verkko ” vaihtoehto. Katso esittelyyn annettuja vaiheita.

Vaihe 1: Luo verkko

Luo uusi verkko käyttämällä ' Docker-verkko luo ”komento. Oletuksena tämä verkko käyttää siltaohjainta:

Docker-verkko luo mygo-verkko

Voit tarkastella Docker-verkkoja käyttämällä ' telakkaverkko ls 'komento:

telakkaverkko ls

Täällä olemme onnistuneesti luoneet ' mygo-verkko 'joka käyttää' silta 'kuljettaja:

Vaihe 2: Kartoita verkko

Käytä alla olevaa komentoa suorittaaksesi ja käyttääksesi säilöä tietyssä verkossa portin edelleenlähetystekniikalla:

telakkajuoksu -s 8080 : 8080 --verkko mygo-verkko golang-img

Annetussa komennossa ' -s ” -vaihtoehto julkaisee säilön määritetyn verkon tietyssä portissa. Täällä ' -verkko ” -vaihtoehtoa käytetään telakointiverkoston määrittämiseen:

Tarkistaaksesi, siirry uudelleen kohtaan ' http://localhost:8080 ” porttia ja tarkista, onko kontti käytettävissä määritetyssä verkossa vai ei:

Yllä oleva tulos osoittaa, että olemme tehokkaasti välittäneet konttiportin tietyssä verkossa.

Huomautus: Käyttäessään 'isäntä' verkkoa käyttäjän ei tarvitse julkaista porttia säiliöstä isäntään käyttämällä ' -s ' tai ' -julkaista ” vaihtoehto.

Välitä portti tiettyyn verkkoon Docker Compose -sovelluksella

Lisää seuraava katkelma ' docker-compose.yml ” tiedosto. Alla olevassa katkelmassa ' verkkoja ” -näppäintä käytetään määrittämään verkko:

versio: '3'
palvelut:

web:
rakentaa:.
portit:
- 8080 : 8080

Käynnistä nyt sovellus säilössä käyttämällä ' telakka-säveltää 'komento:

telakka-säveltää

Olemme käsitelleet portin edelleenlähetyksen menetelmät Dockerissa.

Johtopäätös

Jos haluat välittää Dockerin portin dockerize-sovelluksen käyttöä varten kontin ulkopuolella, käyttäjä voi käyttää joko ' -s ' tai ' -julkaista ' vaihtoehto kohdassa ' telakkajuoksu ' -komentoa tai käyttäjä voi käyttää ' portit ”-näppäintä Dockerin kirjoitustiedostossa. Päästäkseen konttia tietyssä verkossa käyttäjä voi välittää konttiportin verkossa käyttämällä ' –verkko ” vaihtoehto. Tämä blogi on osoittanut tekniikat porttien välittämiseksi Dockerissa.