Kako posredovati vrata v Dockerju

Kako Posredovati Vrata V Dockerju



Docker je zelo priljubljena platforma za dokerizacijo, ki dokkerizira aplikacije in programsko opremo v izoliranem okolju, znanem kot vsebnik. Med izvajanjem aplikacij v vsebnikih morajo uporabniki običajno dostopati do kontejnerske aplikacije zunaj vsebnika. V ta namen morajo uporabniki uporabiti tehniko posredovanja vrat.

Posredovanje vrat v Dockerju je postopek, ki nam omogoča, da izpostavimo vrata vsebnika v gostiteljskem sistemu Docker. Omogoča nam, da aplikacijo izvajamo v izoliranem okolju in jo naredimo dostopno zunaj vsebnika na uporabniškem računalniku.

Ta objava bo pokazala:







Kako posredovati vrata v Dockerju z uporabo oznake »-p« ali »–publish«.

Za posredovanje vrat v Dockerju mora uporabnik objaviti vrata vsebnika na gostitelju Docker. V ta namen zaženite vsebnik na priklopnem gostitelju s pomočjo » -str « ali » – objaviti ' oznaka v ' docker run ” ukaz.



Za pravilno predstavitev sledite spodnjim navodilom.



1. korak: Ustvarite Dockerfile

Najprej ustvarite datoteko in ji nastavite ime kot ' Dockerfile ”. Ta datoteka vsebuje besedilna navodila za ustvarjanje predloge vsebnika Docker. Na primer, dockerizirajmo preprost program Golang z uporabo spodnjega izrezka v datoteki Dockerfile:





IZ golanga: 1.8

DELOVNI DIR / pojdi / src / aplikacija

KOPIRAJ main2.go.

RUN go build -O spletni strežnik.

IZPOSTITE 8080

CMD [ './spletni strežnik' ]

V danem delčku:

  • OD ” Ukaz se uporablja za nastavitev osnovne slike.
  • DELOVNI DIR ” definira delovni imenik vsebnika.
  • KOPIRATI ” bo ustvaril kopijo programske datoteke na poti, določeni v vsebniku.
  • TECI ” bo izvedel navedeni ukaz v vsebniku.
  • IZPOSTITE ” ukaz določa vrata, kjer bo vsebnik poslušan.
  • CMD ” določa izvršljive točke vsebnika.

2. korak: Ustvarite program Golang

Nato ustvarite drugo datoteko z imenom ' main2.go ' in prilepite spodnji program Golang, ki natisne preprost niz na vrata ' 8080 ”:



glavni paket

uvoz (

'fmt'

'dnevnik'

'net/http'

)

upravljalnik funkcij ( notri http.ResponseWriter, r * http.Zahteva ) {

html := `

DOCTYPE html >

< html >

< glavo >

< naslov > Pozdravljen Golang ! naslov >

< stil >

telo {

Barva ozadja: #D2B48C;

}

.posoda {

poravnava besedila: sredina;

oblazinjenje: 50px;

}

stil >

glavo >

< telo >

< div razred = 'posoda' >

< h1 > zdravo ! Dobrodošli v vadnici LinuxHint h1 >

div >

telo >

html >`

w.Glava ( ) .Set ( 'Vrsta vsebine' , 'besedilo/html' )

fmt.Fprint ( notri , html )

}

glavna funkcija ( ) {

http.HandleFunc ( '/' , vodja )

log.Usodno ( http.ListenAndServe ( '0.0.0.0:8080' , nič ) )

}

3. korak: Ustvarite posnetek vsebnika

Zdaj ustvarite posnetek za vsebnik iz zgoraj določene datoteke Docker. V ta namen se najprej pomaknite do imenika, kjer je bila ustvarjena datoteka Dockerfile z uporabo ' cd ” ukaz:

Nato ustvarite novo sliko vsebnika z danim ukazom:

gradnjo dockerja -t golang-img.

Podan rezultat kaže, da je slika ustvarjena v skladu s podanim kontekstom gradnje.

4. korak: Posredujte vrata gostitelja do vrat vsebnika

Zdaj izvedite vsebnik in posredujte gostiteljska vrata v vsebniška vrata za dostop do aplikacije dockerize zunaj vsebnika na lokalnem računalniku. V ta namen zaženite “docker run –name -p : ” ukaz:

docker run --ime go-cont -str 8080 : 8080 golang-img

Tukaj je ' -str ” se uporablja za objavo vrat za izvajanje vsebnika na gostitelju dockerja:

5. korak: Preverjanje

Za preverjanje si oglejte delujoče vsebnike z uporabo » docker ps ”:

docker ps

V spodnjem rezultatu kontejnerska aplikacija posluša razpoložljive omrežne vmesnike ' 0.0.0.0 ' na objavljenih vratih ' 8080 ”. To pomeni, da so vrata posredovana delujoči aplikaciji na gostiteljskem računalniku:

Zdaj zaženite brskalnik in se pomaknite do » http://localhost:8080/ « in preverite, ali je uporabljena tehnika posredovanja vrat ali ne in ali je aplikacija v vsebniku dostopna zunaj vsebnika v gostiteljskem sistemu:

Tukaj smo vrata gostitelja uspešno posredovali vratim vsebnika in aplikacija je dostopna na gostitelju dockerja.

Kako posredovati vrata v Dockerju s pomočjo Docker Compose

Za posredovanje vrat vsebnika gostitelju za dostop do aplikacije v vsebniku zunaj vsebnika lahko uporabnik uporabi » pristanišče ” v datoteki yaml za sestavljanje. Docker compose je storitev Docker, ki nam omogoča izvajanje različnih storitev in aplikacij v različnih vsebnikih. Uporabljati ' docker-compose.yml ”, lahko uporabnik tudi posreduje vrata vsebnika gostiteljskemu računalniku in ima povezavo aplikacije z zunanjim svetom.

Za ilustracije si oglejte spodnji postopek.

1. korak: ustvarite datoteko za sestavljanje

Najprej ustvarite datoteko z imenom ' docker-compose.yml ” in v datoteko dodajte naslednjo vsebino:

različica: '3'

storitve:

splet:

zgraditi:.

vrata:

- 8080 : 8080

V zgornjem izrezku je » pristanišča ” tipka se uporablja za povezavo gostitelja z vrati vsebnika. Tukaj je prva vrednost vrata gostitelja, druga vrednost pa vrata vsebnika.

2. korak: Zaženite aplikacijo

Ko določite navodila v datoteki za sestavljanje, zaženite aplikacijo v vsebniku z uporabo » docker-sestavi ” ukaz:

docker-sestavi

3. korak: Preverjanje

Za preverjanje navedite vsebnike za sestavljanje z uporabo » docker-compose ps ” ukaz:

docker-compose ps -a

Če želite preveriti, ali je vsebnik dostopen na gostiteljskem računalniku, se pomaknite do » http://localhost:8080/ ” URL. Tukaj lahko vidite, da smo učinkovito posredovali vrata vsebnika na gostitelju:

Kako posredovati vrata v določeno omrežje

Za posredovanje vrat vsebnika v določeno omrežje mora uporabnik določiti omrežje, v katerem želi dostopati do vsebnika, z uporabo ' – omrežje ” možnost. Oglejte si dane korake za predstavitev.

1. korak: Ustvarite omrežje

Ustvarite novo omrežje z uporabo » docker network create ” ukaz. Privzeto bo to omrežje uporabljalo mostni gonilnik:

docker omrežje ustvari mygo-omrežje

Za ogled omrežij Docker uporabite » docker omrežje ls ” ukaz:

docker omrežje ls

Tukaj smo uspešno ustvarili ' mygo-omrežje ' ki uporablja ' most ” voznik:

2. korak: Map Network

Za zagon in dostop do vsebnika v določenem omrežju s tehniko posredovanja vrat uporabite spodnji ukaz:

docker run -str 8080 : 8080 --omrežje mygo-omrežje golang-img

V danem ukazu je » -str ” objavi vsebnik na določenih vratih navedenega omrežja. Tukaj je ' – omrežje ” se uporablja za definiranje docker omrežja:

Za preverjanje se znova pomaknite do » http://localhost:8080 ” in preverite, ali je vsebnik dostopen v navedenem omrežju ali ne:

Zgornji izhod kaže, da smo vrata vsebnika dejansko posredovali v določenem omrežju.

Opomba: Med uporabo omrežja »gostitelj« uporabniku ni treba objaviti vrat od vsebnika do gostitelja z uporabo » -str « ali » – objaviti ” možnost.

Posreduj vrata v določeno omrežje z uporabo Docker Compose

Dodajte naslednji delček v » docker-compose.yml ' mapa. V spodnjem delčku je » omrežja Tipka ” se uporablja za določitev omrežja:

različica: '3'
storitve:

splet:
zgraditi:.
vrata:
- 8080 : 8080

Zdaj zaženite aplikacijo v vsebniku z uporabo » docker-sestavi ” ukaz:

docker-sestavi

Zajeli smo metode za posredovanje vrat v Dockerju.

Zaključek

Za posredovanje vrat v Dockerju za dostop do aplikacije dockerize zunaj vsebnika lahko uporabnik uporabi » -str « ali » – objaviti ' možnost v ' docker run ' ali pa lahko uporabnik uporabi ' pristanišča ” v datoteki za sestavljanje Docker. Za dostop do vsebnika v določenem omrežju lahko uporabnik posreduje vrata vsebnika v omrežju z uporabo » –omrežje ” možnost. Ta blog je pokazal tehnike za posredovanje vrat v Dockerju.