Cum să redirecționați portul în Docker

Cum Sa Redirectionati Portul In Docker



Docker este o platformă de dockerizare foarte apreciată care dockerizează aplicațiile și software-ul într-un mediu izolat cunoscut sub numele de container. În timpul executării aplicațiilor în containere, utilizatorilor li se cere de obicei să acceseze aplicația containerizată în afara containerului. În acest scop, utilizatorii trebuie să aplice tehnica port forwarding.

Redirecționarea portului în Docker este un proces care ne permite să expunem portul container pe sistemul gazdă Docker. Ne permite să rulăm aplicația într-un mediu izolat și, de asemenea, să o facem accesibilă din afara containerului pe o mașină utilizator.

Această postare va demonstra:







Cum să redirecționați portul în Docker folosind eticheta „-p” sau „–publish”.

Pentru a redirecționa un port în Docker, utilizatorul trebuie să publice portul containerului pe gazda Docker. În acest scop, rulați containerul pe gazda docker folosind „ -p ” sau ” -publica eticheta ” în ” docker run ” comanda.



Pentru o demonstrație corectă, urmați instrucțiunile de mai jos.



Pasul 1: Creați Dockerfile

Mai întâi, creați un fișier și setați-i numele ca „ Dockerfile ”. Acest fișier conține instrucțiuni textuale pentru a crea șablonul containerului Docker. De exemplu, să andocăm programul simplu Golang folosind fragmentul de mai jos în fișierul Docker:





DIN Golang: 1.8

WORKDIR / merge / src / aplicația

COPY main2.go .

RUN du-te construi -O server web.

EXPUNE 8080

CMD [ './webserver' ]

În fragmentul dat:

  • DIN ” este utilizată comanda pentru a seta imaginea de bază.
  • WORKDIR ” definește directorul de lucru al containerului.
  • COPIE ” comanda va crea o copie a fișierului de program în calea specificată de container.
  • ALERGA ” comanda va executa comanda specificată în container.
  • EXPUNE comanda ” specifică portul în care va fi ascultat containerul.
  • CMD ” specifică punctele executabile ale containerului.

Pasul 2: Creați un program Golang

Apoi, creați un alt fișier numit „ main2.go ” și inserați programul Golang furnizat de mai jos care tipărește un șir simplu pe port” 8080 ”:



pachet principal

import (

'fmt'

'Buturuga'

'net/http'

)

func handler ( În http.ResponseWriter, r * http.Solicitare ) {

html := `

DOCTYPE html >

< html >

< cap >

< titlu > Salut Golang ! titlu >

< stil >

corp {

culoare de fundal: #D2B48C;

}

.container {

text-align: centru;

umplutură: 50px;

}

stil >

cap >

< corp >

< div clasă = 'container' >

< h1 > Buna ziua ! Bun venit la tutorialul LinuxHint h1 >

div >

corp >

html >`

w.Header ( ) .A stabilit ( 'Tipul de conținut' , „text/html” )

fmt.Fprint ( În , html )

}

func principal ( ) {

http.HandleFunc ( '/' , manipulator )

log.Fatal ( http.ListenAndServe ( „0.0.0.0:8080” , nul ) )

}

Pasul 3: Generați instantaneul containerului

Acum, generați un instantaneu pentru container din fișierul Dockerfile specificat mai sus. În acest scop, mai întâi, navigați la directorul în care este creat fișierul Docker, folosind „ cd ”comandă:

Apoi, generați noua imagine de container utilizând comanda dată:

docker build -t golang-img .

Rezultatul dat arată că imaginea este creată în funcție de contextul de construcție furnizat.

Pasul 4: Redirecționați portul gazdă către portul containerului

Acum, executați containerul și trimiteți portul gazdă către portul containerului pentru a accesa aplicația dockerize în afara containerului pe o mașină locală. În acest scop, rulați „docker run –name -p : ”comandă:

docker run --Nume go-cont -p 8080 : 8080 golang-img

Aici ' -p ” este utilizat pentru a publica portul de execuție a containerului pe gazda docker:

Pasul 5: Verificare

Pentru verificare, vizualizați containerele care rulează folosind „ docker ps ”:

docher ps

În rezultatul de mai jos, aplicația containerizată ascultă pe interfețele de rețea disponibile „ 0.0.0.0 ” pe portul publicat ” 8080 ”. Aceasta implică faptul că portul este redirecționat către aplicația care rulează pe mașina gazdă:

Acum, lansați browserul și navigați la „ http://localhost:8080/ ” și verificați dacă tehnica de redirecționare a porturilor este aplicată sau nu și dacă aplicația containerizată este accesibilă în afara containerului pe sistemul gazdă:

Aici am redirecționat cu succes portul gazdă către portul container și aplicația este accesibilă pe gazda docker.

Cum să redirecționați portul în Docker utilizând Docker Compose

Pentru a redirecționa portul container către gazdă pentru a accesa aplicația containerizată din afara containerului, utilizatorul poate utiliza „ port ” tastați fișierul compune yaml. Docker compose este un serviciu Docker care ne permite să rulăm diferite servicii și aplicații în containere diferite. Folosind „ docker-compose.yml ”, utilizatorul poate, de asemenea, să redirecționeze portul container către mașina gazdă și să aibă o conexiune la aplicație cu lumea exterioară.

Consultați procedura de mai jos pentru ilustrații.

Pasul 1: Creați fișierul Compose

Mai întâi, generați un fișier numit „ docker-compose.yml ” și adăugați următorul conținut la fișier:

versiune: '3'

Servicii:

web:

construi: .

porturi:

- 8080 : 8080

În fragmentul de mai sus, „ porturi ” este folosită pentru a conecta gazda la portul container. Aici, prima valoare este portul gazdă, iar a doua valoare este portul containerului.

Pasul 2: Lansați aplicația

După ce ați specificat instrucțiunile din fișierul de scriere, lansați aplicația într-un container utilizând „ docker-compune ”comandă:

docker-compune

Pasul 3: Verificare

Pentru verificare, enumerați containerele compuse folosind butonul „ docker-compose ps ”comandă:

docker-compune ps -A

Pentru a verifica dacă containerul este accesibil pe mașina gazdă, navigați la „ http://localhost:8080/ ” URL. Aici, puteți vedea că am redirecționat efectiv portul container pe gazdă:

Cum să redirecționați portul către o rețea specifică

Pentru a redirecționa un port de container către o anumită rețea, utilizatorul trebuie să specifice rețeaua pe care dorește să acceseze containerul utilizând „ -reţea ' opțiune. Uitați-vă la pașii indicați pentru demonstrație.

Pasul 1: Creați o rețea

Creați o nouă rețea folosind „ docker network create ” comanda. În mod implicit, această rețea va folosi un driver de punte:

rețea docker crea mygo-network

Pentru a vizualiza rețelele Docker, utilizați „ docker network ls ”comandă:

rețea docker ls

Aici, am creat cu succes „ mygo-rețea „care folosește „ pod ' conducător auto:

Pasul 2: Hartă rețeaua

Pentru a rula și a accesa containerul în rețeaua specifică utilizând tehnica de redirecționare a porturilor, utilizați comanda de mai jos:

docker run -p 8080 : 8080 --reţea mygo-network golang-img

În comanda dată, „ -p ” opțiunea publică containerul pe un port specificat al rețelei specificate. Aici ' -reţea ” opțiunea este utilizată pentru a defini rețeaua docker:

Pentru verificare, navigați din nou la „ http://localhost:8080 ” și verificați dacă containerul este accesibil sau nu în rețeaua specificată:

Rezultatul de mai sus indică faptul că am redirecționat efectiv portul container într-o anumită rețea.

Notă: În timpul utilizării rețelei „gazdă”, utilizatorul nu trebuie să publice portul de la container la gazdă folosind „ -p ” sau ” -publica ' opțiune.

Redirecționați portul către o rețea specifică utilizând Docker Compose

Adăugați următorul fragment în „ docker-compose.yml ” dosar. În fragmentul de mai jos, „ retelelor ” este folosită pentru a specifica rețeaua:

versiune: '3'
Servicii:

web:
construi: .
porturi:
- 8080 : 8080

Acum, lansați aplicația într-un container utilizând „ docker-compune ”comandă:

docker-compune

Am acoperit metodele de redirecționare a porturilor în Docker.

Concluzie

Pentru a redirecționa portul în Docker pentru accesarea aplicației dockerize în afara containerului, utilizatorul poate folosi fie „ -p ” sau ” -publica ” din opțiunea ” docker run ” sau utilizatorul poate folosi comanda ” porturi ” în fișierul de compunere Docker. Pentru a accesa containerul într-o anumită rețea, utilizatorul poate redirecționa portul container într-o rețea folosind butonul „ –rețea ' opțiune. Acest blog a demonstrat tehnicile de redirecționare a porturi în Docker.