Tässä artikkelissa näytän sinulle, kuinka portit voidaan paljastaa käyttämällä Docker -tiedosto todellisen maailman esimerkin kanssa. Aloitetaan.
Ensin meidän on luotava projektihakemisto. Tässä hakemistossa sinun tulee säilyttää kaikki projektitiedostot ja Docker -tiedosto .
Luo projektihakemisto suorittamalla seuraava komento myapp/ käyttäjien HOME -hakemistossa ja navigoi siihen:
$mkdir~/myapp&& CD~/myapp
Web -sovelluksen valmisteleminen:
Luo nyt hakemisto src/ sisällä ~/myapp/ hakemistoon seuraavalla komennolla:
$mkdirsrc
Kohteessa src/ hakemistoon, kaikki NodeJS -sovelluksen lähdekoodit säilytetään.
Luon yksinkertaisen app.js tiedosto src/ hakemistosta ja suorita yksinkertainen verkkopalvelin portissa 8080 vain esittelyä varten.
The src/app.js tiedosto sisältää seuraavat koodirivit:
Docker -tiedoston kirjoittaminen ja porttien paljastaminen:
Luo nyt a Docker -tiedosto kohdassa ~/myapp hakemistoon seuraavalla komennolla:
$kosketusDocker -tiedosto
Kirjoita nyt seuraavat rivit Docker -tiedosto ja tallenna se. Kerron myöhemmin, mitä nämä rivit tarkoittavat.
Tässä, ALPINTA: 3.8 tarkoittaa, käytä alppi: 3.8 Docker -kuva perustana uudelle kuvalle, jonka rakennamme tästä Docker -tiedosto .
RUN apk -päivitys tarkoittaa, ajaa apk -päivitys komento Dockerin peruskuvassa alppi: 3.8 .
RUN apk add –no-cache nodejs tarkoittaa, ajaa apk lisää komento asentaa NodeJS -ohjelmointikieli alppi: 3.8 Dockerin pohjakuva.
KOPIOI ./src /app eli kopioi kaikki tiedostot ~/myapp/src hakemistoon /sovellus hakemistosta uuden Docker -kuvan, jonka rakennamme käyttämällä Docker -tiedosto .
CMD [/usr/bin/node, /app/app.js] tarkoittaa, ajaa /app/app.js tiedosto uudesta säilöstä käyttämällä solmu binääri sijaitsee /usr/bin/node .
Lopuksi, VALOTUS 8080/tcp tarkoittaa, paljasta tai avaa TCP -portti 8080 isäntätietokoneeseen.
Mukautetun Docker -kuvan luominen Docker -tiedoston avulla:
Tehdään nyt mukautettu Docker -kuva alppisolmu: v1 käyttämällä Docker -tiedosto jonka juuri loimme.
Varmista ensin, että olet ~/myapp/ ja luo sitten mukautettu Docker -kuva suorittamalla seuraava komento alppisolmu: v1 :
$telakoitsijan rakentaminen-talppisolmu: v1.
Kuten näette, mukautettu Docker -kuva alppisolmu: v1 luodaan. Tarvittava Docker -pohjakuva ja paketit poistetaan Internetistä.
Kuten näette, mukautettu Docker -kuva alppisolmu: v1 on luotu onnistuneesti.
Custom Docker -kuvan testaaminen:
Nyt voimme testata mukautettua Docker -kuvaa alppisolmu: v1 tosi helposti. Meidän tarvitsee vain luoda säiliö alppisolmu: v1 kuva.
Luo Docker -säilö suorittamalla seuraava komento www alkaen alppisolmu: v1 Dockerin kuva:
$telakan juoksu-d -se --nimiwww alppisolmu: v1
Säiliö www on luotu.
Selvitetään nyt laitteen IP -osoite www Docker -säiliö seuraavalla komennolla:
$telakoitsija tarkastaa www| pitoOsoiteKuten näette, minun tapauksessani IP -osoite on 172.17.0.3 . Joten kirjoittamani NodeJS -sovelluksen pitäisi olla käytettävissä portin verkkoselaimella 8080 tästä IP -osoitteesta.
Voila! Voin päästä porttiin 8080 minun www Docker -kontti.
Pohjimmiltaan näin paljastat tietyt portit mukautetuissa Docker -kuvissasi, joita rakennat käyttämällä Docker -tiedosto .
TCP- ja UDP -porttien paljastaminen Docker -tiedoston avulla:
Tämän artikkelin aikaisemmassa osassa näytin sinulle, kuinka paljastaa TCP -portti Docker -tiedosto .
Voit helposti paljastaa TCP -portin (esimerkiksi TCP -portin) 53 ) omassa Docker -tiedosto seuraavalla rivillä:
VALOTUS53/tcpVoit myös paljastaa UDP -portin (esimerkiksi UDP -portin) 53 ) seuraavalla rivillä Docker -tiedosto :
VALOTUS53/udpVoit paljastaa TCP- ja UDP -portin samanaikaisesti seuraavien rivien kanssa Docker -tiedosto :
VALOTUS53/tcpVALOTUS53/udp
Jos et määritä käytettävää protokollaa (TCP tai UDP), oletusarvoisesti käytetään TCP: tä. Jos esimerkiksi kirjoitat seuraavan rivin Docker -tiedosto :
VALOTUS53Sitten Docker olettaa, että haluat käyttää TCP -porttia 53.
Useiden porttien paljastaminen Docker -tiedoston avulla:
Oletetaan, että haluat luoda mukautetun MEAN stack Docker -kuvan. Tässä tapauksessa käytät HTTP -palvelinta jossain portissa (esimerkiksi TCP -portti 80 tai 8080), FTP -palvelimessa, joka toimii TCP -portissa 21, SQL -tietokantapalvelimessa (sanotaan MySQL), joka toimii TCP -portissa 3306, tai NoSQL -tietokantapalvelin (sanotaan MongoDB), joka toimii TCP -portilla 27017 tai 27018, SSH -palvelin, joka toimii TCP -portilla 22. Se on paljon portteja!
Hyvä uutinen on; voit paljastaa niin monta porttia kuin tarvitset mukautetussa Docker -kuvassa, joka on luotu käyttämällä Docker -tiedosto .
Yllä olevan esimerkin portit voidaan paljastaa seuraavilla viivoilla Docker -tiedosto :
VALOTUS80/tcpVALOTUS8080/tcp
VALOTUSkaksikymmentäyksi/tcp
VALOTUS22/tcp
VALOTUS3306/tcp
VALOTUS27017/tcp
VALOTUS27018/tcp
Voit halutessasi jättää protokollamäärityksen, koska Docker käyttää oletusarvoisesti TCP: tä, ja tehdä sama seuraavilla rivillä Docker -tiedosto :
VALOTUS80VALOTUS8080
VALOTUSkaksikymmentäyksi
VALOTUS22
VALOTUS3306
VALOTUS27017
VALOTUS27018
Tarvittaessa voit sekoittaa TCP- ja UDP -portteja Docker -tiedosto . Jos esimerkiksi käytät DNS -palvelinta (joka toimii UDP -portissa 53), yllä olevan esimerkin lisäksi lisäät seuraavat rivit Docker -tiedosto .
VALOTUS80VALOTUS8080
VALOTUSkaksikymmentäyksi
VALOTUS22
VALOTUS53/udp
VALOTUS3306
VALOTUS27017
VALOTUS27018
Joten näin paljastat portteja käyttämällä Docker -tiedosto . Lisätietoja Docker -tiedosto ja paljastamalla portit Docker -tiedosto , Lue Docker -tiedosto viiteopas osoitteessa https://docs.docker.com/engine/reference/builder/#expose
Kiitos tämän artikkelin lukemisesta.