Selles artiklis näitan teile, kuidas sadamaid eksponeerida Dockerfile reaalse maailma näitega. Alustame.
Esiteks peame looma projekti kataloogi. Selles kataloogis peaksite hoidma kõik projektifailid ja a Dockerfile .
Projekti kataloogi loomiseks käivitage järgmine käsk myapp/ oma kasutajate HOME kataloogis ja navigeerige sellele:
$mkdir~/myapp&& CD~/myapp
Veebirakenduse ettevalmistamine:
Nüüd looge kataloog src/ sees ~/myapp/ kataloogi järgmise käsuga:
$mkdirsrc
Aastal src/ kataloogi, säilitatakse kogu minu NodeJS rakenduse lähtekood.
Loon lihtsalt lihtsa app.js fail kaustas src/ kataloogi ja käivitage pordis lihtne veebiserver 8080 lihtsalt demonstratsiooniks.
The src/app.js fail sisaldab järgmisi koodiridu:
Dockerfile'i kirjutamine ja portide kuvamine:
Nüüd looge a Dockerfile aastal ~/myapp kataloogi järgmise käsuga:
$puudutadaDockerfile
Sisestage nüüd järgmised read Dockerfile ja salvesta see. Mida need read tähendavad, arutan hiljem.
Siin, ALPI: 3.8 tähendab, kasutage Alpine: 3.8 Dockeri pilt uue pildi aluseks, mille me sellest ehitame Dockerfile .
RUN apk värskendus tähendab, käivitage apk värskendus käsku Dockeri põhipildil Alpine: 3.8 .
Käivita apk lisage –no-cache nodejs tähendab, käivitage apk lisada käsk NodeJS programmeerimiskeele installimiseks Alpine: 3.8 Dockeri aluspilt.
KOOPIA ./src /app tähendab, kopeerige kõik failid kaustast ~/myapp/src kataloogi /app uue Dockeri pildi kataloogi, mille ehitame, kasutades Dockerfile .
CMD [/usr/bin/node, /app/app.js] tähendab, käivitage /app/app.js faili uue konteineri abil sõlm binaar, mis asub /usr/bin/node .
Lõpuks, et EXPOSE 8080/tk tähendab, paljastada või avada TCP -port 8080 hostarvutisse.
Kohandatud Dockeri pildi loomine Dockerfile'i abil:
Nüüd teeme kohandatud Dockeri pildi alpisõlm: v1 kasutades Dockerfile mille me just lõime.
Esiteks veenduge, et olete selles ~/myapp/ kataloogi ja seejärel käivitage oma Dockeri kohandatud pildi loomiseks järgmine käsk alpisõlm: v1 :
$doki ehitamine-talpisõlm: v1.
Nagu näete, kohandatud Dockeri pilt alpisõlm: v1 luuakse. Vajalik Dockeri põhipilt ja paketid tõmmatakse Internetist.
Nagu näete, kohandatud Dockeri pilt alpisõlm: v1 on edukalt loodud.
Custom Dockeri pildi testimine:
Nüüd saame testida kohandatud Dockeri pilti alpisõlm: v1 väga lihtsalt. Peame ainult looma konteineri alpisõlm: v1 pilt.
Dockeri konteineri loomiseks käivitage järgmine käsk www alates alpisõlm: v1 Dockeri pilt:
$doki jooks-d -see -nimiwww alpine-node: v1
Konteiner www on loodud.
Nüüd uurime välja selle IP -aadress www Dockeri konteiner järgmise käsuga:
$dokk kontrollima www| haaretAadressNagu näete, on minu puhul IP -aadress 172,17.0.3 . Nii et minu kirjutatud NodeJS -i rakendusele peaks olema juurdepääs pordi veebibrauserist 8080 selle IP -aadressi.
Voila! Ma saan sadamasse siseneda 8080 minu oma www Dockeri konteiner.
Põhimõtteliselt paljastate teatud sadamad oma kohandatud Dockeri piltidel, mida ehitate Dockerfile .
TCP- ja UDP -portide paljastamine Dockerfile'i abil:
Selle artikli varasemas osas näitasin teile, kuidas paljastada TCP -port, kasutades Dockerfile .
Saate hõlpsasti paljastada TCP -pordi (oletame, et TCP -port 53 ) sinu sees Dockerfile järgmise reaga:
VÄLJA53/tcpVõite paljastada ka UDP -pordi (oletame, et UDP -port 53 ) järgmise reaga Dockerfile :
VÄLJA53/udpTCP- ja UDP -porti saate samaaegselt paljastada järgmiste ridadega Dockerfile :
VÄLJA53/tcpVÄLJA53/udp
Kui te ei määra, millist protokolli (TCP või UDP) kasutada, kasutatakse vaikimisi TCP -d. Näiteks kui kirjutate oma reale järgmise rea Dockerfile :
VÄLJA53Seejärel eeldab Docker, et soovite kasutada TCP -porti 53.
Mitme pordi paljastamine Dockerfile'i abil:
Oletame, et soovite luua kohandatud MEAN virna Dockeri pildi. Sellisel juhul käivitate HTTP -serveri mõnes pordis (oletame, et TCP -port 80 või 8080), FTP -serveris, mis töötab TCP -pordis 21, SQL -andmebaasiserveris (oletame, et MySQL), mis töötab TCP -pordis 3306, või NoSQL andmebaasiserver (oletame, et MongoDB), mis töötab TCP -pordil 27017 või 27018, SSH -server, mis töötab TCP -pordil 22. See on palju sadamaid!
Hea uudis on; saate oma kohandatud Dockeri pildil paljastada nii palju porte kui vaja Dockerfile .
Ülaltoodud näites olevad pordid saab kuvada järgmiste ridadega Dockerfile :
VÄLJA80/tcpVÄLJA8080/tcp
VÄLJAkakskümmend üks/tcp
VÄLJA22/tcp
VÄLJA3306/tcp
VÄLJA27017/tcp
VÄLJA27018/tcp
Soovi korral võite jätta protokolli spetsifikatsiooni, kuna Docker kasutab vaikimisi TCP -d, ja teha sama toimingu järgmiste ridadega Dockerfile :
VÄLJA80VÄLJA8080
VÄLJAkakskümmend üks
VÄLJA22
VÄLJA3306
VÄLJA27017
VÄLJA27018
Vajadusel saate oma TCP- ja UDP -porte segada Dockerfile . Näiteks kui kasutate DNS -serverit (mis töötab UDP -pordis 53), lisate koos ülaltoodud näitega oma kontole järgmised read Dockerfile .
VÄLJA80VÄLJA8080
VÄLJAkakskümmend üks
VÄLJA22
VÄLJA53/udp
VÄLJA3306
VÄLJA27017
VÄLJA27018
Nii paljastate porte kasutades Dockerfile . Et rohkem teada saada Dockerfile ja portide paljastamist kasutades Dockerfile , Loe Dockerfile teatmik juhendis https://docs.docker.com/engine/reference/builder/#expose
Täname, et lugesite seda artiklit.