Kako proslijediti port u Dockeru

Kako Proslijediti Port U Dockeru



Docker je popularna platforma za dokerizaciju koja dokerizira aplikacije i softver u izoliranom okruženju poznatom kao spremnik. Dok izvršavaju aplikacije u spremnicima, korisnici obično moraju pristupiti aplikaciji u spremniku izvan spremnika. U tu svrhu korisnici trebaju primijeniti tehniku ​​prosljeđivanja portova.

Prosljeđivanje porta u Dockeru proces je koji nam omogućuje izlaganje porta spremnika na Docker glavnom sustavu. Omogućuje nam da pokrenemo aplikaciju u izoliranom okruženju i učinimo je dostupnom izvan spremnika na korisničkom računalu.

Ovaj post će pokazati:







Kako proslijediti port u Dockeru pomoću oznake “-p” ili “–publish”.

Za prosljeđivanje porta u Dockeru, korisnik mora objaviti port spremnika na Docker hostu. U tu svrhu pokrenite spremnik na docker hostu koristeći ' -str ' ili ' -objaviti ' oznaka u ' docker run ” naredba.



Za pravilnu demonstraciju, slijedite upute u nastavku.



Korak 1: Napravite Dockerfile

Prvo stvorite datoteku i postavite joj naziv kao ' Dockerfile ”. Ova datoteka sadrži tekstualne upute za izradu predloška Docker spremnika. Na primjer, dokerizirajmo jednostavan Golang program pomoću donjeg isječka u Docker datoteci:





IZ golanga: 1.8

RADNI DIR / ići / src / aplikacija

KOPIRAJ main2.go .

BJEČI idi gradi -O web poslužitelj.

IZLOŽITI 8080

CMD [ './web poslužitelj' ]

U danom isječku:

  • IZ ” naredba se koristi za postavljanje osnovne slike.
  • RADNI DIR ” definira radni direktorij spremnika.
  • KOPIRATI ” Naredba će stvoriti kopiju programske datoteke u stazi navedenoj u spremniku.
  • TRČANJE ” naredba će izvršiti navedenu naredbu u spremniku.
  • IZLOŽITI ” naredba određuje port na kojem će se spremnik slušati.
  • CMD ” specificira izvršne točke spremnika.

Korak 2: Napravite Golang program

Zatim stvorite drugu datoteku pod nazivom ' main2.go ” i zalijepite dolje navedeni Golang program koji ispisuje jednostavan niz na portu “ 8080 ”:



glavni paket

uvoz (

'fmt'

'log'

'net/http'

)

rukovatelj func ( U http.ResponseWriter, r * http.Zahtjev ) {

html := `

DOCTYPE html >

< html >

< glavu >

< titula > Pozdrav Golang ! titula >

< stil >

tijelo {

boja pozadine: #D2B48C;

}

.kontejner {

poravnanje teksta: središte;

ispuna: 50px;

}

stil >

glavu >

< tijelo >

< div razreda = 'kontejner' >

< h1 > zdravo ! Dobro došli u vodič za LinuxHint h1 >

div >

tijelo >

html >`

w.Zaglavlje ( ) .Postavite ( 'Vrsta sadržaja' , 'tekst/html' )

fmt.Fprint ( U , html )

}

funkcija glavna ( ) {

http.HandleFunc ( '/' , rukovatelj )

log.Kobno ( http.ListenAndServe ( '0.0.0.0:8080' , nula ) )

}

Korak 3: Generirajte snimku spremnika

Sada generirajte snimku za spremnik iz gore navedene Docker datoteke. U tu svrhu prvo idite do direktorija u kojem je kreirana Dockerfile pomoću ' cd ” naredba:

Zatim generirajte novu sliku spremnika pomoću zadane naredbe:

docker build -t golang-img .

Dani rezultat pokazuje da je slika stvorena u skladu s navedenim kontekstom izrade.

Korak 4: proslijedite port glavnog računala portu spremnika

Sada izvršite spremnik i proslijedite priključak glavnog računala na priključak spremnika za pristup aplikaciji dockerize izvan spremnika na lokalnom računalu. U tu svrhu pokrenite “docker run –name -p : ” naredba:

docker run --Ime idi-nastavi -str 8080 : 8080 golang-img

Ovdje, ' -str ” zastavica se koristi za objavljivanje priključka za izvođenje spremnika na docker hostu:

Korak 5: Provjera

Za provjeru, pogledajte spremnike koji rade pomoću ' docker ps ”:

lučki radnik p.s

U donjem rezultatu, kontejnerska aplikacija sluša dostupna mrežna sučelja ' 0.0.0.0 ' na objavljenom priključku ' 8080 ”. To podrazumijeva da se port prosljeđuje pokrenutoj aplikaciji na glavnom računalu:

Sada pokrenite preglednik i idite na ' http://localhost:8080/ ” i provjerite je li tehnika prosljeđivanja porta primijenjena ili ne i je li aplikacija u spremniku dostupna izvan spremnika na glavnom sustavu:

Ovdje smo uspješno proslijedili priključak glavnog računala na priključak spremnika i aplikacija je dostupna na docker glavnom računalu.

Kako proslijediti port u Dockeru koristeći Docker Compose

Za prosljeđivanje priključka spremnika glavnom računalu za pristup aplikaciji u spremniku izvan spremnika, korisnik može upotrijebiti ' luka ” u yaml datoteci za sastavljanje. Docker compose je Docker usluga koja nam omogućuje pokretanje različitih usluga i aplikacija u različitim spremnicima. Koristiti ' docker-compose.yml ” datoteku, korisnik također može proslijediti priključak spremnika na glavno računalo i imati vezu aplikacije s vanjskim svijetom.

Za ilustracije pogledajte postupak u nastavku.

Korak 1: Napravite novu datoteku

Prvo generirajte datoteku pod nazivom ' docker-compose.yml ” i dodajte sljedeći sadržaj u datoteku:

verzija: '3'

usluge:

mreža:

izgraditi: .

luke:

- 8080 : 8080

U gornjem isječku, ' luke ” tipka se koristi za povezivanje glavnog računala s portom spremnika. Ovdje je prva vrijednost port hosta, a druga vrijednost je port spremnika.

Korak 2: Pokrenite aplikaciju

Nakon što navedete upute u datoteci za sastavljanje, pokrenite aplikaciju u spremniku koristeći ' docker-sastaviti ” naredba:

docker-sastaviti

Korak 3: Provjera

Za provjeru, popišite spremnike za sastavljanje pomoću ' docker-compose ps ” naredba:

docker-compose p.s -a

Da biste provjerili je li spremnik dostupan na glavnom računalu, idite na ' http://localhost:8080/ ” URL. Ovdje možete vidjeti da smo učinkovito proslijedili port spremnika na glavnom računalu:

Kako proslijediti priključak na određenu mrežu

Za prosljeđivanje priključka spremnika određenoj mreži, korisnik treba odrediti mrežu na kojoj želi pristupiti spremniku koristeći ' -mreža ” opcija. Pogledajte dane korake za demonstraciju.

Korak 1: Stvorite mrežu

Stvorite novu mrežu koristeći ' docker network create ” naredba. Prema zadanim postavkama, ova će mreža koristiti upravljački program mosta:

docker mreža stvoriti mygo-mrežu

Za pregled Docker mreža upotrijebite ' docker mreža ls ” naredba:

docker mreža ls

Ovdje smo uspješno stvorili ' mygo-mreža ' koji koristi ' most ” vozač:

Korak 2: Karta mreže

Za pokretanje i pristup spremniku na određenoj mreži koristeći tehniku ​​prosljeđivanja porta, upotrijebite naredbu u nastavku:

docker run -str 8080 : 8080 --mreža mygo-mreža golang-img

U zadanoj naredbi, ' -str ” opcija objavljuje spremnik na određenom priključku navedene mreže. Ovdje, ' -mreža ” opcija se koristi za definiranje docker mreže:

Za potvrdu ponovno idite na ' http://localhost:8080 ” i provjerite je li spremnik dostupan na navedenoj mreži ili ne:

Gornji izlaz pokazuje da smo učinkovito proslijedili port kontejnera na određenu mrežu.

Bilješka: Dok koristi 'host' mrežu, korisnik ne treba objavljivati ​​port od spremnika do hosta koristeći ' -str ' ili ' -objaviti ” opcija.

Proslijedite priključak na određenu mrežu koristeći Docker Compose

Dodajte sljedeći isječak u ' docker-compose.yml ' datoteka. U donjem isječku, ' mreže ” tipka se koristi za određivanje mreže:

verzija: '3'
usluge:

mreža:
izgraditi: .
luke:
- 8080 : 8080

Sada pokrenite aplikaciju u spremniku koristeći ' docker-sastaviti ” naredba:

docker-sastaviti

Pokrili smo metode za prosljeđivanje portova u Dockeru.

Zaključak

Za prosljeđivanje priključka u Dockeru za pristup dockerize aplikaciji izvan spremnika, korisnik može koristiti ' -str ' ili ' -objaviti ' opcija u ' docker run ' ili korisnik može koristiti ' luke ” ključ u Docker datoteci za sastavljanje. Kako bi pristupio spremniku na određenoj mreži, korisnik može proslijediti port spremnika na mreži pomoću ' –mreža ” opcija. Ovaj blog je pokazao tehnike za prosljeđivanje portova u Dockeru.