Port továbbítása a Dockerben

Port Tovabbitasa A Dockerben



A Docker egy kedvelt dokkolóplatform, amely az alkalmazásokat és a szoftvereket egy elszigetelt környezetben, konténerként dokkolja. A tárolókban lévő alkalmazások végrehajtása során a felhasználóknak általában a tárolón kívül kell elérniük a konténeres alkalmazást. Ebből a célból a felhasználóknak a porttovábbítási technikát kell alkalmazniuk.

A porttovábbítás a Dockerben egy olyan folyamat, amely lehetővé teszi számunkra, hogy felfedjük a tárolóportot a Docker gazdagépen. Lehetővé teszi, hogy az alkalmazást elszigetelt környezetben futtassuk, és elérhetővé tegyük a felhasználói gépen lévő tárolón kívülről is.

Ez a bejegyzés bemutatja:







Port továbbítása a Dockerben a „-p” vagy „–publish” címke használatával

Port továbbításához a Dockerben a felhasználónak közzé kell tennie a tárolóportot a Docker-gazdagépen. Ebből a célból futtassa a tárolót a docker gazdagépen a „ -o ” vagy „ – közzé ' címke a ' dokkolófuttatás ” parancsot.



A megfelelő demonstráció érdekében kövesse az alábbi utasításokat.



1. lépés: Készítsen Dockerfile-t

Először hozzon létre egy fájlt, és állítsa be a nevét ' Dockerfile ”. Ez a fájl tartalmazza a szöveges utasításokat a Docker-tároló sablonjának létrehozásához. Például dockerizáljuk az egyszerű Golang programot a Dockerfile alábbi részletével:





A golangból: 1.8

WORKDIR / megy / src / kb

MÁSOLÁS main2.go .

RUN menj építeni -O web szerver .

KIFEJEZNI 8080

CMD [ './web szerver' ]

A megadott részletben:

  • ' TÓL TŐL ” parancsot használják az alapkép beállítására.
  • ' WORKDIR ” határozza meg a tároló munkakönyvtárát.
  • ' MÁSOLAT ” parancs létrehozza a programfájl másolatát a tároló által megadott elérési úton.
  • ' FUSS ” parancs végrehajtja a megadott parancsot a tárolóban.
  • ' KIFEJEZNI ” parancs megadja azt a portot, ahol a konténer meghallgatásra kerül.
  • ' CMD ” határozza meg a tároló végrehajtható pontjait.

2. lépés: Hozzon létre egy Golang programot

Ezután hozzon létre egy másik fájlt ' main2.go ', és illessze be az alábbi Golang programot, amely egy egyszerű karakterláncot nyomtat a portra 8080 ”:



csomag fő

import (

'fmt'

'napló'

'net/http'

)

funkciókezelő ( Ban ben http.ResponseWriter, r * http.Kérés ) {

html := `

DOCTYPE html >

< html >

< fej >

< cím > Szia Golang! ! cím >

< stílus >

test {

háttérszín: #D2B48C;

}

.tartály {

szöveg igazítása: középre;

padding: 50px;

}

stílus >

fej >

< test >

< div osztály = 'tartály' >

< h1 > Helló ! Üdvözöljük a LinuxHint oktatóprogramban h1 >

div >

test >

html >`

w.Header ( ) .Készlet ( 'Tartalom típus' , 'text/html' )

fmt.Fprint ( Ban ben , html )

}

func main ( ) {

http.HandleFunc ( '/' , kezelő )

log.Végzetes ( http.ListenAndServe ( '0.0.0.0:8080' , nulla ) )

}

3. lépés: Hozzon létre egy tároló pillanatképet

Most hozzon létre egy pillanatképet a tárolóhoz a fent megadott Dockerfile-ból. Ehhez először keresse meg azt a könyvtárat, ahol a Dockerfile létrejön a ' cd 'parancs:

Ezután hozza létre az új tárolóképet a megadott paranccsal:

dokkoló épít -t golang-img .

A megadott eredmény azt mutatja, hogy a kép a megadott összeállítási kontextusnak megfelelően jön létre.

4. lépés: Továbbítsa a gazdagépportot a konténerportra

Most futtassa a tárolót, és továbbítsa a gazdagépportot a tárolóportra, hogy elérje a dockerize alkalmazást a tárolón kívül egy helyi gépen. Ebből a célból futtassa a „docker run –name -p : 'parancs:

dokkolófuttatás --név go-cont -o 8080 : 8080 golang-img

Itt a „ -o ” zászlót használják a tároló végrehajtó portjának közzétételére a docker gazdagépen:

5. lépés: Ellenőrzés

Az ellenőrzéshez tekintse meg a futó tárolókat a „ dokkoló ps ”:

dokkmunkás ps

Az alábbi eredményben a konténeres alkalmazás az elérhető hálózati interfészeken figyel ' 0.0.0.0 ' közzétett porton ' 8080 ”. Ez azt jelenti, hogy a port továbbításra kerül a gazdagépen futó alkalmazáshoz:

Most indítsa el a böngészőt, és keresse meg a ' http://localhost:8080/ ', és ellenőrizze, hogy alkalmazzák-e a porttovábbítási technikát vagy sem, és hogy a konténeres alkalmazás elérhető-e a tárolón kívül a gazdarendszeren:

Itt sikeresen továbbítottuk a gazdagép portot a konténerportba, és az alkalmazás elérhető a docker gazdagépen.

Port továbbítása a Dockerben a Docker Compose használatával

A konténerport továbbításához a gazdagéphez a konténeres alkalmazás eléréséhez a tárolón kívülről a felhasználó használhatja a „ kikötő ” írja be a yaml fájl összeállításához. A Docker compose egy Docker-szolgáltatás, amely lehetővé teszi számunkra, hogy különböző szolgáltatásokat és alkalmazásokat futtassunk különböző tárolókban. Használni a ' docker-compose.yml ” fájlt, a felhasználó továbbíthatja a konténerportot a gazdagépre, és alkalmazáskapcsolatot létesíthet a külvilággal.

Az illusztrációkért nézze meg az alábbi eljárást.

1. lépés: Készítsen írási fájlt

Először hozzon létre egy '' nevű fájlt docker-compose.yml ” fájlt, és adja hozzá a következő tartalmat a fájlhoz:

változat: '3'

szolgáltatások:

web:

épít: .

portok:

- 8080 : 8080

A fenti részletben a „ portok ” gomb a gazdagép és a konténerport csatlakoztatására szolgál. Itt az első érték a gazdagép port, a második érték pedig a tárolóport.

2. lépés: Indítsa el az alkalmazást

Miután megadta az utasításokat a levélírási fájlban, indítsa el az alkalmazást egy tárolóban a „ dokkoló-komponálni 'parancs:

dokkoló-komponálni

3. lépés: Ellenőrzés

Az ellenőrzéshez sorolja fel a levélírási tárolókat a „ dokkoló-kompozíció ps 'parancs:

dokkoló-komponálni ps -a

Annak ellenőrzéséhez, hogy a tároló elérhető-e a gazdagépen, lépjen a „ http://localhost:8080/ ” URL. Itt láthatja, hogy hatékonyan továbbítottuk a tárolóportot a gazdagépen:

A port továbbítása adott hálózatra

Ha egy konténerportot egy adott hálózatra szeretne továbbítani, a felhasználónak meg kell adnia azt a hálózatot, amelyen a konténerhez hozzá szeretne férni a „ -hálózat ' választási lehetőség. Tekintse meg a bemutatott lépéseket.

1. lépés: Hálózat létrehozása

Hozzon létre egy új hálózatot a „ dokkolóhálózat létrehozása ” parancsot. Alapértelmezés szerint ez a hálózat egy híd-illesztőprogramot használ:

docker hálózat mygo-hálózat létrehozása

A Docker hálózatok megtekintéséhez használja a „ dokkolóhálózat ls 'parancs:

dokkoló hálózat ls

Itt sikeresen létrehoztuk mygo-hálózat ', amely a ' híd ' sofőr:

2. lépés: Térképezze fel a hálózatot

A tároló futtatásához és eléréséhez az adott hálózaton a porttovábbítási technikával, használja az alábbi parancsot:

dokkolófuttatás -o 8080 : 8080 --hálózat mygo-network golang-img

Az adott parancsban a „ -o ” opció közzéteszi a tárolót a megadott hálózat egy megadott portján. Itt a „ -hálózat ” opció a dokkolóhálózat meghatározására szolgál:

Az ellenőrzéshez ismét navigáljon a „ http://localhost:8080 ” portot, és ellenőrizze, hogy a konténer elérhető-e a megadott hálózaton vagy sem:

A fenti kimenet azt jelzi, hogy ténylegesen továbbítottuk a konténerportot egy adott hálózaton.

Jegyzet: A „host” hálózat használata közben a felhasználónak nem kell közzétennie a portot a tárolótól a gazdagépig a „ -o ” vagy „ – közzé ' választási lehetőség.

Továbbítsa a portot egy adott hálózatra a Docker Compose segítségével

Adja hozzá a következő kódrészletet a ' docker-compose.yml ” fájlt. Az alábbi részletben a „ hálózatok ” gomb a hálózat megadására szolgál:

változat: '3'
szolgáltatások:

web:
épít: .
portok:
- 8080 : 8080

Most indítsa el az alkalmazást egy tárolóban a „ dokkoló-komponálni 'parancs:

dokkoló-komponálni

Leírtuk a porttovábbítás módszereit a Dockerben.

Következtetés

A Docker portjának továbbításához a dockerize alkalmazás tárolón kívüli eléréséhez a felhasználó használhatja a „ -o ” vagy „ – közzé ' opció a ' dokkolófuttatás ” parancsot, vagy a felhasználó használhatja a „ portok ” billentyűt a Docker összeállítási fájljában. A konténer egy adott hálózaton való eléréséhez a felhasználó továbbíthatja a konténerportot a hálózaton a „ –hálózat ' választási lehetőség. Ez a blog bemutatta a portok továbbításának technikáit a Dockerben.