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äminen edelleen Dockerissa Docker Compose -sovelluksella
- Portin välittäminen tiettyyn verkkoon
- Johtopäätös
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
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
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 psAlla 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
Voit tarkastella Docker-verkkoja käyttämällä ' telakkaverkko ls 'komento:
telakkaverkko lsTää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-imgAnnetussa 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