Paano Ipasa ang Port sa Docker

Paano Ipasa Ang Port Sa Docker



Ang Docker ay isang kilalang dockerization platform na nag-dockerize ng mga application at software sa isang nakahiwalay na kapaligiran na kilala bilang isang container. Habang nagsasagawa ng mga application sa mga container, karaniwang kinakailangan ng mga user na i-access ang containerized na application sa labas ng container. Para sa layuning ito, kailangang ilapat ng mga user ang diskarte sa pagpapasa ng port.

Ang port forwarding sa Docker ay isang proseso na nagbibigay-daan sa amin na ilantad ang container port sa Docker host system. Ito ay nagpapahintulot sa amin na patakbuhin ang application sa isang nakahiwalay na kapaligiran at gawin din itong naa-access mula sa labas ng lalagyan sa isang user machine.

Ipapakita ng post na ito:







Paano Ipasa ang Port sa Docker Gamit ang '-p' o '–publish' na Tag

Upang magpasa ng port sa Docker, kailangang i-publish ng user ang container port sa host ng Docker. Para sa layuning ito, patakbuhin ang container sa docker host gamit ang “ -p 'o' –publish 'tag sa ' tumakbo sa pantalan ” utos.



Para sa wastong pagpapakita, sundin ang mga tagubilin sa ibaba.



Hakbang 1: Gumawa ng Dockerfile

Una, lumikha ng isang file at itakda ang pangalan nito bilang ' Dockerfile ”. Ang file na ito ay naglalaman ng mga textual na tagubilin para gawin ang template ng Docker container. Halimbawa, i-dockerize natin ang simpleng Golang program gamit ang snippet sa ibaba sa Dockerfile:





MULA sa golang: 1.8

WORKDIR / pumunta ka / src / app

COPY main2.go .

RUN go build -O webserver .

EXPOSE 8080

CMD [ './webserver' ]

Sa ibinigay na snippet:

  • MULA SA 'Ang utos ay ginagamit upang itakda ang batayang imahe.
  • WORKDIR ” ay tumutukoy sa gumaganang direktoryo ng container.
  • KOPYA Ang command na ” ay gagawa ng kopya ng program file sa path na tinukoy ng container.
  • TAKBO ” utos ay isasagawa ang tinukoy na utos sa lalagyan.
  • EXPOSE ” utos ay tumutukoy sa port kung saan ang lalagyan ay pakikinggan.
  • CMD ” ay tumutukoy sa mga executable point ng container.

Hakbang 2: Gumawa ng Golang Program

Susunod, lumikha ng isa pang file na pinangalanang ' main2.go ” at i-paste ang ibinigay na programang Golang sa ibaba na nagpi-print ng isang simpleng string sa port “ 8080 ”:



pangunahing pakete

angkat (

'fmt'

'log'

'net/http'

)

func handler ( Sa http.ResponseWriter, r * http.Kahilingan ) {

html := `

DOCTYPE html >

< html >

< ulo >

< pamagat > Hello Golang ! pamagat >

< istilo >

katawan {

kulay ng background: #D2B48C;

}

.lalagyan {

text-align: center;

padding: 50px;

}

istilo >

ulo >

< katawan >

< div klase = 'lalagyan' >

< h1 > Kamusta ! Maligayang pagdating sa LinuxHint Tutorial h1 >

div >

katawan >

html >`

w.Header ( ) .Itakda ( 'Uri ng Nilalaman' , 'text/html' )

fmt.Fprint ( Sa , html )

}

func main ( ) {

http.HandleFunc ( '/' , handler )

log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , wala ) )

}

Hakbang 3: Bumuo ng Snapshot ng Container

Ngayon, bumuo ng snapshot para sa lalagyan mula sa tinukoy na Dockerfile sa itaas. Para sa layuning ito, una, mag-navigate sa direktoryo kung saan nilikha ang Dockerfile gamit ang ' cd ” utos:

Susunod, bumuo ng bagong imahe ng lalagyan gamit ang ibinigay na command:

pagtatayo ng docker -t golang-img .

Ang ibinigay na resulta ay nagpapakita na ang imahe ay nilikha ayon sa ibinigay na konteksto ng build.

Hakbang 4: Ipasa ang Host Port sa Container Port

Ngayon, i-execute ang container at ipasa ang host port sa container port para ma-access ang dockerize app sa labas ng container sa isang lokal na makina. Para sa layuning ito, patakbuhin ang “docker run –name -p : ” utos:

tumakbo sa pantalan --pangalan go-cont -p 8080 : 8080 golang-img

Dito, ang ' -p ” na flag ay ginagamit upang i-publish ang container na nagpapatupad ng port sa docker host:

Hakbang 5: Pag-verify

Para sa pag-verify, tingnan ang mga tumatakbong container gamit ang ' docker ps ”:

docker ps

Sa resulta sa ibaba, ang containerized na application ay nakikinig sa mga available na interface ng network ' 0.0.0.0 'sa nai-publish na port' 8080 ”. Ipinahihiwatig nito na ang port ay ipinapasa sa tumatakbong aplikasyon sa host machine:

Ngayon, ilunsad ang browser at mag-navigate sa “ http://localhost:8080/ ” at i-verify kung ang diskarte sa pag-forward ng port ay inilapat o hindi at kung ang containerized na application ay naa-access sa labas ng container sa host system:

Dito, matagumpay naming naipasa ang host port sa container port at ang application ay naa-access sa docker host.

Paano Ipasa ang Port sa Docker Gamit ang Docker Compose

Para ipasa ang container port sa host para ma-access ang containerized application mula sa labas ng container, magagamit ng user ang ' daungan ” key sa compose yaml file. Ang Docker compose ay isang serbisyo ng Docker na nagbibigay-daan sa amin na magpatakbo ng iba't ibang serbisyo at application sa iba't ibang container. Gamit ang ' docker-compose.yml ” file, maaari ding ipasa ng user ang container port sa host machine at magkaroon ng koneksyon ng application sa labas ng mundo.

Tingnan ang pamamaraan sa ibaba para sa mga guhit.

Hakbang 1: Gumawa ng Compose File

Una, bumuo ng isang file na pinangalanang ' docker-compose.yml ” file at idagdag ang sumusunod na nilalaman sa file:

bersyon: '3'

mga serbisyo:

web:

bumuo: .

mga port:

- 8080 : 8080

Sa snippet sa itaas, ang ' mga daungan ” key ay ginagamit para ikonekta ang host sa container port. Dito, ang unang value ay ang host port, at ang pangalawang value ay ang container port.

Hakbang 2: Ilunsad ang App

Pagkatapos tukuyin ang mga tagubilin sa compose file, ilunsad ang application sa isang container gamit ang ' docker-compose up ” utos:

docker-compose up

Hakbang 3: Pag-verify

Para sa pag-verify, ilista ang mga compose container gamit ang “ docker-compose ps ” utos:

docker-compose ps -a

Upang tingnan kung ang lalagyan ay naa-access sa host machine, mag-navigate sa “ http://localhost:8080/ ” URL. Dito, makikita mong epektibo naming naipasa ang container port sa host:

Paano Ipasa ang Port sa Partikular na Network

Upang magpasa ng container port sa isang partikular na network, kailangang tukuyin ng user ang network kung saan nila gustong i-access ang container gamit ang ' – network ” opsyon. Tingnan ang ibinigay na mga hakbang para sa pagpapakita.

Hakbang 1: Gumawa ng Network

Gumawa ng bagong network gamit ang “ gumawa ng network ng docker ng ” utos. Bilang default, gagamit ang network na ito ng bridge driver:

ang docker network ay lumikha ng mygo-network

Upang tingnan ang mga network ng Docker, gamitin ang ' docker network ls ” utos:

network ng docker ls

Dito, matagumpay naming nagawa ang ' mygo-network 'gumagamit yan' tulay ' driver:

Hakbang 2: Map Network

Upang patakbuhin at i-access ang lalagyan sa partikular na network gamit ang diskarte sa pagpapasa ng port, gamitin ang command sa ibaba:

tumakbo sa pantalan -p 8080 : 8080 --network mygo-network golang-img

Sa ibinigay na utos, ang ' -p ” na opsyon ay nagpa-publish ng lalagyan sa isang tinukoy na port ng tinukoy na network. Dito, ang ' – network 'Ang opsyon ay ginagamit upang tukuyin ang docker network:

Para sa pag-verify, muling mag-navigate sa ' http://localhost:8080 ” port at tingnan kung naa-access ang container sa tinukoy na network o hindi:

Ang output sa itaas ay nagpapahiwatig na epektibo naming naipasa ang container port sa isang partikular na network.

Tandaan: Habang ginagamit ang network na 'host', hindi kailangang i-publish ng user ang port mula sa container patungo sa host gamit ang ' -p 'o' –publish ” opsyon.

Ipasa ang Port sa Partikular na Network Gamit ang Docker Compose

Idagdag ang sumusunod na snippet sa “ docker-compose.yml ” file. Sa snippet sa ibaba, ang ' mga network ” key ay ginagamit upang tukuyin ang network:

bersyon: '3'
mga serbisyo:

web:
bumuo: .
mga port:
- 8080 : 8080

Ngayon, ilunsad ang application sa isang lalagyan gamit ang “ docker-compose up ” utos:

docker-compose up

Sinakop namin ang mga pamamaraan para sa pagpapasa ng port sa Docker.

Konklusyon

Upang ipasa ang port sa Docker para sa pag-access sa dockerize application sa labas ng container, maaaring gamitin ng user ang ' -p 'o' –publish 'opsyon sa ' tumakbo sa pantalan ” utos o maaaring gamitin ng user ang “ mga daungan ” key sa Docker compose file. Upang ma-access ang container sa isang partikular na network, maaaring ipasa ng user ang container port sa isang network sa pamamagitan ng paggamit ng “ –network ” opsyon. Ipinakita ng blog na ito ang mga diskarte sa pagpapasa ng mga port sa Docker.