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:
- Kuidas porti Dockeris edasi saata, kasutades märgendit '-p' või '-publish'.
- Kuidas porti Dockeris Docker Compose'i abil edasi saata
- Kuidas porti konkreetsesse võrku edasi suunata
- Järeldus
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
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
Siin on ' -lk ” lippu kasutatakse konteineri täitmispordi avaldamiseks dockeri hostis:
5. samm: kinnitamine
Kontrollimiseks vaadake töötavaid konteinereid kasutades ' dokkija ps ”:
dokkija psAllolevas 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
Dockeri võrkude vaatamiseks kasutage dokkimisvõrk ls 'käsk:
dokkimisvõrk lsSiin 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-imgAntud 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