Kuidas porti Dockeris edasi saata

Kuidas Porti Dockeris Edasi Saata



Docker on populaarne dokkimisplatvorm, mis dokkib rakendused ja tarkvara isoleeritud keskkonnas, mida tuntakse konteinerina. Konteinerites rakenduste täitmisel peavad kasutajad tavaliselt konteinerirakendusele juurde pääsema väljaspool konteinerit. Selleks peavad kasutajad rakendama pordi edastamise tehnikat.

Pordi edastamine Dockeris on protsess, mis võimaldab meil Dockeri hostisüsteemi konteineri pordi paljastada. See võimaldab meil rakendust käitada isoleeritud keskkonnas ja teha sellele juurdepääsetavaks ka kasutaja masina konteinerit väljastpoolt.

See postitus näitab:







Porti edasisaatmine Dockeris, kasutades silti '-p' või '-publish'.

Pordi edastamiseks Dockeris peab kasutaja avaldama konteineri pordi Dockeri hostis. Selleks käivitage konteiner dokkeri hostis, kasutades käsku ' -lk ” või „ – avaldada ' silt jaotises ' dokijooks ” käsk.



Õigeks demonstreerimiseks järgige alltoodud juhiseid.



1. samm: looge Dockerfile

Esmalt looge fail ja määrake selle nimeks ' Dockerfile ”. See fail sisaldab tekstilisi juhiseid Dockeri konteineri malli loomiseks. Näiteks dokkigem lihtne Golangi programm, kasutades Dockerfile'i allolevat fragmenti:





golangist: 1.8

TÖÖDIREKTOR / mine / src / rakendus

KOPeeri main2.go .

JOOKSE, mine ehita -O veebiserver .

AVALDA 8080

CMD [ './veebiserver' ]

Antud katkendis:

  • FROM ” kasutatakse põhipildi määramiseks.
  • TÖÖDIREKTOR ” määrab konteineri töökataloogi.
  • KOPERI ” käsk loob konteineri määratud teele programmifaili koopia.
  • JOOKSE ” käsk täidab konteineris määratud käsu.
  • AVALDA ” käsk määrab pordi, kus konteinerit kuulatakse.
  • CMD ” määrab konteineri käivitatavad punktid.

2. samm: looge Golangi programm

Järgmisena looge teine ​​fail nimega ' main2.go ja kleepige allolev Golangi programm, mis prindib pordile lihtsa stringi 8080 ”:



pakett peamine

importida (

'fmt'

'logi'

'net/http'

)

func handler ( sisse http.ResponseWriter, r * http.Taotlus ) {

html := `

DOCTYPE html >

< html >

< pea >

< pealkiri > Tere Golang ! pealkiri >

< stiilis >

keha {

taustavärv: #D2B48C;

}

.konteiner {

teksti joondamine: keskel;

polsterdus: 50 pikslit;

}

stiilis >

pea >

< keha >

< div klass = 'konteiner' >

< h1 > Tere ! Tere tulemast LinuxHinti õpetusse h1 >

div >

keha >

html >`

w.Päis ( ) .Seadista ( 'Sisu tüüp' , 'text/html' )

fmt.Fprint ( sisse , html )

}

func main ( ) {

http.HandleFunc ( '/' , käitleja )

logi.Saatuslik ( http.ListenAndServe ( '0.0.0.0:8080' , null ) )

}

3. samm: looge konteineri hetktõmmis

Nüüd looge ülaltoodud Dockerfile'ist konteineri jaoks hetktõmmis. Selleks navigeerige esmalt kataloogi, kus Dockerfile luuakse, kasutades ' cd 'käsk:

Järgmisena genereerige antud käsu abil uus konteineri pilt:

doki ehitamine -t golang-img .

Antud tulemus näitab, et pilt on loodud vastavalt etteantud ehituskontekstile.

4. samm: edastage hostiport konteineriporti

Nüüd käivitage konteiner ja edastage hosti port konteineriporti, et pääseda ligi kohalikus masinas väljaspool konteinerit asuvale dokkimisrakendusele. Selleks käivitage Docker Run –nimi -p : 'käsk:

dokijooks --nimi mine-jätk -lk 8080 : 8080 golang-img

Siin on ' -lk ” lippu kasutatakse konteineri täitmispordi avaldamiseks dockeri hostis:

5. samm: kinnitamine

Kontrollimiseks vaadake töötavaid konteinereid kasutades ' dokkija ps ”:

dokkija ps

Allolevas tulemuses kuulab konteinerrakendus saadaolevaid võrguliideseid ' 0.0.0.0 ' avaldatud sadamas ' 8080 ”. See tähendab, et port edastatakse hostmasinas töötavale rakendusele:

Nüüd käivitage brauser ja liikuge jaotisse ' http://localhost:8080/ ” ja kontrollige, kas pordi edastamise tehnikat rakendatakse või mitte ja kas konteinerrakendus on juurdepääsetav väljaspool hostsüsteemi konteinerit:

Siin oleme hostipordi edukalt konteinerporti edastanud ja rakendus on dokihostis juurdepääsetav.

Kuidas porti Dockeris Docker Compose'i abil edasi saata

Konteinerpordi edastamiseks hostile, et pääseda juurde konteinerirakendusele väljaspool konteinerit, saab kasutaja kasutada sadamasse ” klahvi yaml-faili koostamiseks. Docker compose on Dockeri teenus, mis võimaldab meil käitada erinevaid teenuseid ja rakendusi erinevates konteinerites. Kasutades ' docker-compose.yml ” faili, saab kasutaja ka konteineri pordi edastada hostmasinale ja omada rakenduseühendust välismaailmaga.

Illustreerimiseks vaadake allolevat protseduuri.

1. toiming: looge koostamisfail

Esiteks looge fail nimega ' docker-compose.yml ” faili ja lisage failile järgmine sisu:

versioon: '3'

teenused:

võrk:

ehitada: .

pordid:

- 8080 : 8080

Ülaltoodud lõigus on ' sadamad klahvi kasutatakse hosti ühendamiseks konteineri pordiga. Siin on esimene väärtus hosti port ja teine ​​väärtus konteineri port.

2. samm: käivitage rakendus

Pärast koostamisfailis juhiste täpsustamist käivitage rakendus konteineris, kasutades ' dokkija-koostama 'käsk:

dokkija-koostama

3. samm: kinnitamine

Kontrollimiseks loetlege koostamiskonteinerid, kasutades nuppu ' dokkija-koostamine ps 'käsk:

dokkija-komponeeri ps -a

Kontrollimaks, kas konteiner on hostmasinas juurdepääsetav, navigeerige jaotisse ' http://localhost:8080/ ” URL. Siin näete, et oleme hosti konteineripordi tõhusalt edastanud:

Kuidas porti konkreetsesse võrku edastada

Konteinerpordi edastamiseks kindlasse võrku peab kasutaja määrama võrgu, kus ta soovib konteinerile juurde pääseda, kasutades nuppu ' -võrk ” valik. Vaadake demonstreerimiseks antud samme.

1. samm: looge võrk

Looge uus võrk, kasutades ' dokkimisvõrk loo ” käsk. Vaikimisi kasutab see võrk silladraiverit:

dokkimisvõrk loo mygo-võrk

Dockeri võrkude vaatamiseks kasutage dokkimisvõrk ls 'käsk:

dokkimisvõrk ls

Siin oleme edukalt loonud mygo-võrk ', mis kasutab ' sild ” juht:

2. samm: kaardista võrk

Konteineri käitamiseks ja juurdepääsuks konkreetses võrgus, kasutades pordi edastamise tehnikat, kasutage allolevat käsku:

dokijooks -lk 8080 : 8080 --võrk mygo-võrk golang-img

Antud käsus on ' -lk ” suvand avaldab konteineri määratud võrgu määratud pordis. Siin on ' -võrk Dockeri võrgu määratlemiseks kasutatakse valikut ”

Kinnitamiseks navigeerige uuesti jaotisse ' http://localhost:8080 ” port ja kontrollige, kas konteiner on määratud võrgus juurdepääsetav või mitte:

Ülaltoodud väljund näitab, et oleme tõhusalt edastanud konteineri pordi konkreetses võrgus.

Märge: Kui kasutate 'hosti' võrku, ei pea kasutaja avaldama porti konteinerist hosti, kasutades ' -lk ” või „ – avaldada ” valik.

Edastage port konkreetsesse võrku, kasutades Docker Compose'i

Lisage jaotisesse ' docker-compose.yml ” faili. Allolevas lõigus on „ võrgud klahvi kasutatakse võrgu määramiseks:

versioon: '3'
teenused:

võrk:
ehitada: .
pordid:
- 8080 : 8080

Nüüd käivitage rakendus konteineris, kasutades ' dokkija-koostama 'käsk:

dokkija-koostama

Oleme käsitlenud Dockeri pordi edastamise meetodeid.

Järeldus

Dockeri pordi edastamiseks dockerize'i rakendusele juurdepääsuks väljaspool konteinerit saab kasutaja kasutada kas ' -lk ” või „ - avaldada ' valik jaotises ' dokijooks ' või kasutaja saab kasutada käsku ' sadamad ” klahvi Dockeri koostamisfailis. Konteinerile juurdepääsuks konkreetses võrgus saab kasutaja konteineri pordi võrgus edasi suunata, kasutades ' –võrk ” valik. See ajaveeb on näidanud Dockeri portide edastamise tehnikaid.