Dockerfilen käyttäminen porttien paljastamiseen

Using Dockerfile Expose Ports



Omien Docker -kuvien luominen olemassa olevista Docker -kuvista on todella helppoa käyttämällä Docker -tiedosto . Yleensä ihmiset käyttävät minimaalista peruskuvaa, kuten alppi tai ubuntu/debian siihen tarkoitukseen. Oletetaan, että haluat luoda mukautetun Docker -kuvan suosikkisovelluksestasi, joka on kirjoitettu NodeJS: llä. Sovellus toimii portissa 8080 . Oletuksena et voi käyttää verkkosovellusta portissa 8080 isäntäkoneeltasi. Sinun on kerrottava Dockerille, että haluat paljastaa tai avata portin 8080 jotta voit käyttää sitä isäntäkoneeltasi.

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| pitoOsoite

Kuten 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/tcp

Voit myös paljastaa UDP -portin (esimerkiksi UDP -portin) 53 ) seuraavalla rivillä Docker -tiedosto :

VALOTUS53/udp

Voit paljastaa TCP- ja UDP -portin samanaikaisesti seuraavien rivien kanssa Docker -tiedosto :

VALOTUS53/tcp
VALOTUS53/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 :

VALOTUS53

Sitten 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/tcp
VALOTUS8080/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 :

VALOTUS80
VALOTUS8080
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 .

VALOTUS80
VALOTUS8080
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.