डॉकर में पोर्ट कैसे अग्रेषित करें

Dokara Mem Porta Kaise Agresita Karem



डॉकर एक लोकप्रिय डॉकराइज़ेशन प्लेटफ़ॉर्म है जो कंटेनर के रूप में जाने जाने वाले एक अलग वातावरण में एप्लिकेशन और सॉफ़्टवेयर को डॉकराइज़ करता है। कंटेनरों में एप्लिकेशन निष्पादित करते समय, उपयोगकर्ताओं को आमतौर पर कंटेनर के बाहर कंटेनरीकृत एप्लिकेशन तक पहुंचने की आवश्यकता होती है। इस प्रयोजन के लिए, उपयोगकर्ताओं को पोर्ट फ़ॉरवर्डिंग तकनीक लागू करने की आवश्यकता है।

डॉकर में पोर्ट फ़ॉरवर्डिंग एक ऐसी प्रक्रिया है जो हमें डॉकर होस्ट सिस्टम पर कंटेनर पोर्ट को उजागर करने में सक्षम बनाती है। यह हमें एप्लिकेशन को एक पृथक वातावरण में चलाने की अनुमति देता है और इसे उपयोगकर्ता मशीन पर कंटेनर के बाहर से भी एक्सेस करने योग्य बनाता है।

यह पोस्ट प्रदर्शित करेगी:







'-p' या '-publish' टैग का उपयोग करके डॉकर में पोर्ट को कैसे अग्रेषित करें

डॉकर में एक पोर्ट को अग्रेषित करने के लिए, उपयोगकर्ता को डॉकर होस्ट पर कंटेनर पोर्ट को प्रकाशित करना होगा। इस प्रयोजन के लिए, 'का उपयोग करके कंटेनर को डॉकर होस्ट पर चलाएँ' -पी ' या ' -प्रकाशित करें 'में टैग करें' डॉकर रन ' आज्ञा।



उचित प्रदर्शन के लिए, नीचे दिए गए निर्देशों का पालन करें।



चरण 1: डॉकरफ़ाइल बनाएं

सबसे पहले, एक फ़ाइल बनाएं और उसका नाम ' Dockerfile ”। इस फ़ाइल में डॉकर कंटेनर का टेम्प्लेट बनाने के लिए पाठ्य निर्देश शामिल हैं। उदाहरण के लिए, आइए Dockerfile में नीचे दिए गए स्निपेट का उपयोग करके सरल गोलांग प्रोग्राम को डॉकराइज़ करें:





गोलांग से: 1.8

वर्कडिर / जाना / स्रोत / अनुप्रयोग

कॉपी करें main2.go .

भागो निर्माण करो -ओ वेब सर्वर ।

अनावृत करना 8080

अध्यक्ष एवं प्रबंध निदेशक [ '।/वेब सर्वर' ]

दिए गए स्निपेट में:

  • से बेस इमेज सेट करने के लिए कमांड का उपयोग किया जाता है।
  • वर्कडिर कंटेनर की कार्यशील निर्देशिका को परिभाषित करता है।
  • कॉपी कमांड कंटेनर-निर्दिष्ट पथ में प्रोग्राम फ़ाइल की एक प्रति बनाएगा।
  • दौड़ना 'कमांड कंटेनर में निर्दिष्ट कमांड निष्पादित करेगा।
  • अनावृत करना 'कमांड उस पोर्ट को निर्दिष्ट करता है जहां कंटेनर की बात सुनी जाएगी।
  • अध्यक्ष एवं प्रबंध निदेशक ” कंटेनर के निष्पादन योग्य बिंदु निर्दिष्ट करता है।

चरण 2: एक गोलांग प्रोग्राम बनाएं

इसके बाद, 'नाम से एक और फ़ाइल बनाएं main2.go 'और नीचे दिए गए गोलंग प्रोग्राम को पेस्ट करें जो पोर्ट पर एक साधारण स्ट्रिंग प्रिंट करता है' 8080 ”:



पैकेज मुख्य

आयात (

'एफएमटी'

'लकड़ी का लट्ठा'

'नेट/http'

)

फंक हैंडलर ( में http.ResponseWriter, आर * http.अनुरोध ) {

एचटीएमएल := `

DOCTYPE html >

< एचटीएमएल >

< सिर >

< शीर्षक > नमस्ते गोलांग ! शीर्षक >

< शैली >

शरीर {

पृष्ठभूमि का रंग: #D2B48C;

}

.कंटेनर {

पाठ-संरेखण: केंद्र;

पैडिंग: 50px;

}

शैली >

सिर >

< शरीर >

< डिव कक्षा = 'कंटेनर' >

< एच 1 > नमस्ते ! LinuxHint ट्यूटोरियल में आपका स्वागत है एच 1 >

डिव >

शरीर >

एचटीएमएल >`

w.हैडर ( ) ।तय करना ( 'सामग्री प्रकार' , 'पाठ/एचटीएमएल' )

एफएमटी.एफप्रिंट ( में , एचटीएमएल )

}

मुख्य कार्य ( ) {

http.HandleFunc ( '/' , हैंडलर )

लॉग.घातक ( http.सुनेंऔर परोसें ( '0.0.0.0:8080' , शून्य ) )

}

चरण 3: कंटेनर का स्नैपशॉट जेनरेट करें

अब, उपरोक्त निर्दिष्ट Dockerfile से कंटेनर के लिए एक स्नैपशॉट जनरेट करें। इस प्रयोजन के लिए, सबसे पहले, उस निर्देशिका पर जाएँ जहाँ 'का उपयोग करके डॉकरफ़ाइल बनाई गई है' सीडी <पथ-टू-वर्किंग-डीआईआर> ' आज्ञा:

इसके बाद, दिए गए कमांड का उपयोग करके नई कंटेनर छवि बनाएं:

डोकर निर्माण -टी गोलांग-आईएमजी।

दिए गए परिणाम से पता चलता है कि छवि प्रदान किए गए निर्माण संदर्भ के अनुसार बनाई गई है।

चरण 4: होस्ट पोर्ट को कंटेनर पोर्ट पर अग्रेषित करें

अब, कंटेनर को निष्पादित करें और स्थानीय मशीन पर कंटेनर के बाहर डॉकराइज़ ऐप तक पहुंचने के लिए होस्ट पोर्ट को कंटेनर पोर्ट पर अग्रेषित करें। इस प्रयोजन के लिए, चलाएँ “डॉकर रन -नाम -p : ' आज्ञा:

डॉकर रन --नाम जारी रखें -पी 8080 : 8080 गोलांग-इमग

यहां ही ' -पी 'ध्वज का उपयोग कंटेनर निष्पादन पोर्ट को डॉकर होस्ट पर प्रकाशित करने के लिए किया जाता है:

चरण 5: सत्यापन

सत्यापन के लिए, चल रहे कंटेनरों को 'का उपयोग करके देखें' डोकर पी.एस ”:

डाक में काम करनेवाला मज़दूर पी.एस.

नीचे दिए गए परिणाम में, कंटेनरीकृत एप्लिकेशन उपलब्ध नेटवर्क इंटरफेस पर सुन रहा है। 0.0.0.0 'प्रकाशित बंदरगाह पर' 8080 ”। इसका तात्पर्य यह है कि पोर्ट होस्ट मशीन पर चल रहे एप्लिकेशन को अग्रेषित किया जाता है:

अब, ब्राउज़र लॉन्च करें और “पर नेविगेट करें” http://localhost:8080/ ” और सत्यापित करें कि पोर्ट फ़ॉरवर्डिंग तकनीक लागू है या नहीं और क्या कंटेनरीकृत एप्लिकेशन होस्ट सिस्टम पर कंटेनर के बाहर पहुंच योग्य है:

यहां हमने होस्ट पोर्ट को कंटेनर पोर्ट पर सफलतापूर्वक अग्रेषित कर दिया है और एप्लिकेशन डॉकर होस्ट पर पहुंच योग्य है।

डॉकर कंपोज़ का उपयोग करके डॉकर में पोर्ट को कैसे अग्रेषित करें

कंटेनर के बाहर से कंटेनरीकृत एप्लिकेशन तक पहुंचने के लिए कंटेनर पोर्ट को होस्ट तक अग्रेषित करने के लिए, उपयोगकर्ता 'का उपयोग कर सकता है' पत्तन YAML फ़ाइल लिखें में कुंजी। डॉकर कंपोज़ एक डॉकर सेवा है जो हमें विभिन्न कंटेनरों में विभिन्न सेवाओं और एप्लिकेशन को चलाने में सक्षम बनाती है। का उपयोग ' docker-compose.yml ”फ़ाइल, उपयोगकर्ता कंटेनर पोर्ट को होस्ट मशीन पर अग्रेषित भी कर सकता है और बाहरी दुनिया से एप्लिकेशन कनेक्शन प्राप्त कर सकता है।

उदाहरणों के लिए नीचे दी गई प्रक्रिया देखें।

चरण 1: कंपोज़ फ़ाइल बनाएं

सबसे पहले, 'नाम वाली एक फ़ाइल बनाएं docker-compose.yml ”फ़ाइल बनाएं और फ़ाइल में निम्नलिखित सामग्री जोड़ें:

संस्करण: '3'

सेवाएँ:

वेब:

निर्माण: ।

बंदरगाह:

- 8080 : 8080

उपरोक्त स्निपेट में, ' बंदरगाहों होस्ट को कंटेनर पोर्ट से जोड़ने के लिए कुंजी का उपयोग किया जाता है। यहां, पहला मान होस्ट पोर्ट है, और दूसरा मान कंटेनर पोर्ट है।

चरण 2: ऐप लॉन्च करें

कंपोज़ फ़ाइल में निर्देश निर्दिष्ट करने के बाद, एप्लिकेशन को 'का उपयोग करके एक कंटेनर में लॉन्च करें' डोकर-रचना करें ' आज्ञा:

डोकर-रचना करें

चरण 3: सत्यापन

सत्यापन के लिए, 'का उपयोग करके कंपोज़ कंटेनरों को सूचीबद्ध करें' डोकर-लिखें पी.एस ' आज्ञा:

docker-compose पी.एस. -ए

यह जांचने के लिए कि कंटेनर होस्ट मशीन पर पहुंच योग्य है या नहीं, “पर जाएँ” http://localhost:8080/ “यूआरएल. यहां, आप देख सकते हैं कि हमने होस्ट पर कंटेनर पोर्ट को प्रभावी ढंग से अग्रेषित कर दिया है:

पोर्ट को विशिष्ट नेटवर्क पर कैसे अग्रेषित करें

किसी कंटेनर पोर्ट को किसी विशिष्ट नेटवर्क पर अग्रेषित करने के लिए, उपयोगकर्ता को उस नेटवर्क को निर्दिष्ट करना होगा जिस पर वे 'का उपयोग करके कंटेनर तक पहुंचना चाहते हैं' -नेटवर्क ' विकल्प। प्रदर्शन के लिए दिए गए चरणों को देखें।

चरण 1: एक नेटवर्क बनाएं

का उपयोग करके एक नया नेटवर्क बनाएं डॉकर नेटवर्क <नेट-नाम> बनाएं ' आज्ञा। डिफ़ॉल्ट रूप से, यह नेटवर्क ब्रिज ड्राइवर का उपयोग करेगा:

डॉकर नेटवर्क मायगो-नेटवर्क बनाएं

डॉकर नेटवर्क देखने के लिए, 'का उपयोग करें डॉकर नेटवर्क एलएस ' आज्ञा:

डॉकर नेटवर्क रास

यहां, हमने सफलतापूर्वक 'बनाया है' mygo-नेटवर्क ' वह उपयोग कर रहा है ' पुल ' चालक:

चरण 2: मानचित्र नेटवर्क

पोर्ट फ़ॉरवर्डिंग तकनीक का उपयोग करके विशिष्ट नेटवर्क पर कंटेनर को चलाने और एक्सेस करने के लिए, नीचे दिए गए कमांड का उपयोग करें:

डॉकर रन -पी 8080 : 8080 --नेटवर्क मायगो-नेटवर्क गोलांग-आईएमजी

दिए गए आदेश में, ' -पी ”विकल्प कंटेनर को निर्दिष्ट नेटवर्क के निर्दिष्ट पोर्ट पर प्रकाशित करता है। यहां ही ' -नेटवर्क डॉकर नेटवर्क को परिभाषित करने के लिए 'विकल्प का उपयोग किया जाता है:

सत्यापन के लिए, फिर से “पर जाएँ” http://localhost:8080 'पोर्ट करें और जांचें कि कंटेनर निर्दिष्ट नेटवर्क पर पहुंच योग्य है या नहीं:

उपरोक्त आउटपुट इंगित करता है कि हमने कंटेनर पोर्ट को एक विशिष्ट नेटवर्क पर प्रभावी ढंग से अग्रेषित कर दिया है।

टिप्पणी: 'होस्ट' नेटवर्क का उपयोग करते समय, उपयोगकर्ता को 'का उपयोग करके कंटेनर से होस्ट तक पोर्ट प्रकाशित करने की आवश्यकता नहीं होती है' -पी ' या ' -प्रकाशित करें ' विकल्प।

डॉकर कंपोज़ का उपयोग करके पोर्ट को विशिष्ट नेटवर्क पर अग्रेषित करें

निम्नलिखित स्निपेट को 'में जोड़ें docker-compose.yml ' फ़ाइल। नीचे दिए गए स्निपेट में, ' नेटवर्क 'कुंजी का उपयोग नेटवर्क निर्दिष्ट करने के लिए किया जाता है:

संस्करण: '3'
सेवाएँ:

वेब:
निर्माण: ।
बंदरगाह:
- 8080 : 8080

अब, ' का उपयोग करके एप्लिकेशन को एक कंटेनर में लॉन्च करें डोकर-रचना करें ' आज्ञा:

डोकर-रचना करें

हमने डॉकर में पोर्ट फ़ॉरवर्डिंग के तरीकों को कवर किया है।

निष्कर्ष

कंटेनर के बाहर डॉकराइज़ एप्लिकेशन तक पहुंचने के लिए डॉकर में पोर्ट को अग्रेषित करने के लिए, उपयोगकर्ता या तो 'का उपयोग कर सकता है' -पी ' या ' -प्रकाशित करें 'विकल्प' में डॉकर रन 'कमांड या उपयोगकर्ता' का उपयोग कर सकता है बंदरगाहों डॉकर कंपोज़ फ़ाइल में कुंजी। किसी विशिष्ट नेटवर्क पर कंटेनर तक पहुंचने के लिए, उपयोगकर्ता 'का उपयोग करके नेटवर्क पर कंटेनर पोर्ट को अग्रेषित कर सकता है' -नेटवर्क <नेटवर्क> ' विकल्प। इस ब्लॉग ने डॉकर में पोर्ट अग्रेषित करने की तकनीकों का प्रदर्शन किया है।