Portvideresending i Docker er en prosess som gjør oss i stand til å eksponere containerporten på Docker-vertssystemet. Den tillater oss å kjøre applikasjonen i et isolert miljø og også gjøre den tilgjengelig fra utsiden av beholderen på en brukermaskin.
Dette innlegget vil demonstrere:
- Hvordan videresende port i Docker ved å bruke '-p' eller '–publish' tag
- Hvordan videresende port i Docker ved hjelp av Docker Compose
- Hvordan videresende port til et spesifikt nettverk
- Konklusjon
Hvordan videresende port i Docker ved å bruke '-p' eller '–publish' tag
For å videresende en port i Docker, må brukeren publisere containerporten på Docker-verten. For dette formålet, kjør beholderen på docker-verten ved å bruke ' -s ' eller ' -publisere ' tag i ' docker run ' kommando.
Følg instruksjonene nedenfor for riktig demonstrasjon.
Trinn 1: Lag Dockerfile
Først oppretter du en fil og setter navnet som ' Dockerfil '. Denne filen inneholder tekstinstruksjonene for å lage malen til Docker-beholderen. La oss for eksempel dokke det enkle Golang-programmet ved å bruke utdraget nedenfor i Dockerfilen:
FRA golang: 1.8
WORKDIR / gå / src / app
COPY main2.go .
LØP og bygg -O Internett server .
AVDEKKE 8080
CMD [ './Internett server' ]
I det gitte utdraget:
- ' FRA ”-kommandoen brukes til å angi grunnbildet.
- ' WORKDIR ' definerer beholderens arbeidskatalog.
- ' KOPIERE kommandoen vil lage en kopi av programfilen i den containerspesifiserte banen.
- ' LØPE kommandoen vil utføre den angitte kommandoen i beholderen.
- ' AVDEKKE ” kommandoen spesifiserer porten der containeren skal lyttes til.
- ' CMD ” spesifiserer de kjørbare punktene til beholderen.
Trinn 2: Lag et Golang-program
Deretter oppretter du en annen fil med navnet ' main2.go ' og lim inn Golang-programmet nedenfor som skriver ut en enkel streng på port ' 8080 ':
hovedpakke
import (
'fmt'
'Logg'
'net/http'
)
funksjonsbehandler ( I http.ResponseWriter, r * http.Request ) {
html := `
DOCTYPE html >
< html >
< hode >
< tittel > Hei Golang ! tittel >
< stil >
kropp {
bakgrunnsfarge: #D2B48C;
}
.container {
tekst-align: center;
polstring: 50px;
}
stil >
hode >
< kropp >
< div klasse = 'container' >
< h1 > Hallo ! Velkommen til LinuxHint Tutorial h1 >
div >
kropp >
html >`
w.Overskrift ( ) .Sett ( 'Innholdstype' , 'tekst/html' )
fmt.Fprint ( I , html )
}
func main ( ) {
http.HandleFunc ( '/' , handler )
log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , null ) )
}
Trinn 3: Generer containerens øyeblikksbilde
Generer nå et øyeblikksbilde for beholderen fra den ovenfor angitte Dockerfilen. For dette formålet, naviger først til katalogen der Dockerfilen er opprettet ved å bruke ' cd
Deretter genererer du det nye beholderbildet ved å bruke den gitte kommandoen:
dockerbygg -t golang-img .
Det gitte resultatet viser at bildet er opprettet i henhold til den angitte byggekonteksten.
Trinn 4: Videresend vertsport til containerport
Kjør nå containeren og videresend vertsporten til containerporten for å få tilgang til dockerize-appen utenfor containeren på en lokal maskin. For dette formålet, kjør “docker run –navn
Her er ' -s flagget brukes til å publisere containerutføringsporten på docker-verten:
Trinn 5: Verifisering
For verifisering, se de kjørende beholderne ved å bruke ' docker ps ':
havnearbeider psI resultatet nedenfor lytter den containeriserte applikasjonen på tilgjengelige nettverksgrensesnitt ' 0.0.0.0 ' på publisert port ' 8080 '. Det innebærer at porten videresendes til den kjørende applikasjonen på vertsmaskinen:
Nå, start nettleseren og naviger til ' http://localhost:8080/ ' og kontroller om portvideresendingsteknikken er brukt eller ikke, og om den containeriserte applikasjonen er tilgjengelig utenfor containeren på vertssystemet:
Her har vi videresendt vertsporten til containerporten og applikasjonen er tilgjengelig på docker-verten.
Hvordan videresende port i Docker ved hjelp av Docker Compose
For å videresende containerporten til verten for å få tilgang til den containeriserte applikasjonen fra utenfor containeren, kan brukeren bruke ' havn ” tast inn compose yaml-filen. Docker compose er en Docker-tjeneste som lar oss kjøre forskjellige tjenester og applikasjoner i forskjellige containere. Bruker ' docker-compose.yml ”-fil, kan brukeren også videresende containerporten til vertsmaskinen og ha en applikasjonsforbindelse til omverdenen.
Sjekk ut prosedyren nedenfor for illustrasjoner.
Trinn 1: Lag Compose File
Generer først en fil som heter ' docker-compose.yml '-filen og legg til følgende innhold i filen:
versjon: '3'tjenester:
web:
bygge: .
porter:
- 8080 : 8080
I utdraget ovenfor, ' havner ”-tasten brukes til å koble verten til containerporten. Her er den første verdien vertsporten, og den andre verdien er containerporten.
Trinn 2: Start appen
Etter å ha spesifisert instruksjonene i skrivefilen, start applikasjonen i en beholder ved å bruke ' docker-komponere ' kommando:
docker-komponere
Trinn 3: Verifisering
For verifisering, skriv ned skrivebeholderne ved å bruke ' docker-compose ps ' kommando:
docker-komponere ps -en
For å sjekke om beholderen er tilgjengelig på vertsmaskinen, naviger til ' http://localhost:8080/ ' URL. Her kan du se at vi effektivt har videresendt containerporten til verten:
Hvordan videresende port til spesifikt nettverk
For å videresende en containerport til et spesifikt nettverk, må brukeren spesifisere nettverket de vil ha tilgang til containeren på ved å bruke ' -Nettverk alternativet. Se på de gitte trinnene for demonstrasjon.
Trinn 1: Opprett et nettverk
Opprett et nytt nettverk ved å bruke ' docker-nettverk opprette
For å se Docker-nettverkene, bruk ' docker-nettverk ls ' kommando:
docker-nettverk lsHer har vi med suksess opprettet ' mygo-nettverk ' som bruker ' bro ' sjåfør:
Trinn 2: Kartlegg nettverk
For å kjøre og få tilgang til beholderen på det spesifikke nettverket ved å bruke portvideresendingsteknikken, bruk kommandoen nedenfor:
docker run -s 8080 : 8080 --Nettverk mygo-nettverk golang-imgI den gitte kommandoen ' -s alternativet publiserer beholderen på en spesifisert port i det angitte nettverket. Her er ' -Nettverk alternativet brukes til å definere docker-nettverket:
For bekreftelse, gå igjen til ' http://localhost:8080 ' port og sjekk om containeren er tilgjengelig på det angitte nettverket eller ikke:
Utdataene ovenfor indikerer at vi effektivt har videresendt containerporten på et spesifikt nettverk.
Merk: Mens du bruker 'vert'-nettverket, trenger ikke brukeren å publisere porten fra container til vert ved å bruke ' -s ' eller ' -publisere alternativet.
Videresend port til spesifikt nettverk ved hjelp av Docker Compose
Legg til følgende utdrag i ' docker-compose.yml ' fil. I utdraget nedenfor, ' nettverk '-tasten brukes til å spesifisere nettverket:
versjon: '3'tjenester:
web:
bygge: .
porter:
- 8080 : 8080
Nå, start applikasjonen i en beholder ved å bruke ' docker-komponere ' kommando:
docker-komponere
Vi har dekket metodene for portvideresending i Docker.
Konklusjon
For å videresende porten i Docker for tilgang til dockerize-applikasjonen utenfor containeren, kan brukeren enten bruke ' -s ' eller ' -publisere '-alternativet i ' docker run kommandoen eller brukeren kan bruke havner ”-tasten i Docker-skrivefilen. For å få tilgang til containeren på et spesifikt nettverk, kan brukeren videresende containerporten på et nettverk ved å bruke ' –nettverk