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ása a Dockerben a Docker Compose használatával
- A port továbbítása egy adott hálózatra
- Következtetés
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
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
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 psAz 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
A Docker hálózatok megtekintéséhez használja a „ dokkolóhálózat ls 'parancs:
dokkoló hálózat lsItt 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-imgAz 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