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”.
- Kako proslijediti port u Dockeru koristeći Docker Compose
- Kako proslijediti priključak na određenu mrežu
- Zaključak
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
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
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.sU 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
Za pregled Docker mreža upotrijebite ' docker mreža ls ” naredba:
docker mreža lsOvdje 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-imgU 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