ڈوکر میں پورٹ کو کیسے آگے بڑھایا جائے۔

Wkr My Pwr Kw Kys Ag B Aya Jay



ڈوکر ایک اچھی طرح سے پسند کیا جانے والا ڈاکرائزیشن پلیٹ فارم ہے جو کنٹینر کے نام سے جانے والے الگ تھلگ ماحول میں ایپلی کیشنز اور سافٹ ویئر کو ڈوکرائز کرتا ہے۔ کنٹینرز میں ایپلی کیشنز کو انجام دینے کے دوران، صارفین کو عام طور پر کنٹینر کے باہر کنٹینرائزڈ ایپلیکیشن تک رسائی حاصل کرنے کی ضرورت ہوتی ہے۔ اس مقصد کے لیے صارفین کو پورٹ فارورڈنگ تکنیک کو لاگو کرنے کی ضرورت ہے۔

ڈوکر میں پورٹ فارورڈنگ ایک ایسا عمل ہے جو ہمیں ڈوکر ہوسٹ سسٹم پر کنٹینر پورٹ کو بے نقاب کرنے کے قابل بناتا ہے۔ یہ ہمیں ایپلیکیشن کو الگ تھلگ ماحول میں چلانے کی اجازت دیتا ہے اور اسے صارف کی مشین پر کنٹینر کے باہر سے بھی قابل رسائی بناتا ہے۔

یہ پوسٹ دکھائے گی:







'-p' یا '-publish' ٹیگ کا استعمال کرتے ہوئے ڈوکر میں پورٹ کو کیسے آگے بڑھایا جائے۔

ڈوکر میں بندرگاہ کو آگے بڑھانے کے لیے، صارف کو ڈوکر ہوسٹ پر کنٹینر پورٹ شائع کرنے کی ضرورت ہے۔ اس مقصد کے لیے، ڈوکر ہوسٹ پر کنٹینر چلائیں ' -p 'یا' - شائع کریں 'میں ٹیگ کریں' ڈاکر رن ' کمانڈ.



مناسب مظاہرے کے لیے، درج ذیل ہدایات پر عمل کریں۔



مرحلہ 1: ڈاکر فائل بنائیں

سب سے پہلے، ایک فائل بنائیں اور اس کا نام سیٹ کریں ' ڈاکر فائل ' اس فائل میں ڈوکر کنٹینر کی ٹیمپلیٹ بنانے کے لیے متنی ہدایات ہیں۔ مثال کے طور پر، آئیے Dockerfile میں درج ذیل ٹکڑوں کا استعمال کرتے ہوئے سادہ گولانگ پروگرام کو ڈوکرائز کریں:





گولانگ سے: 1.8

ورکڈائر / جاؤ / src / ایپ

کاپی main2.go

چلائیں تعمیر کریں -O ویب سرور .

بے نقاب 8080

سی ایم ڈی [ './ویب سرور' ]

دیئے گئے ٹکڑوں میں:

  • ' سے ” کمانڈ کا استعمال بیس امیج کو سیٹ کرنے کے لیے کیا جاتا ہے۔
  • ' ورکڈائر 'کنٹینر کی ورکنگ ڈائرکٹری کی وضاحت کرتا ہے۔
  • ' کاپی کریں۔ کمانڈ کنٹینر کے مخصوص راستے میں پروگرام فائل کی ایک کاپی بنائے گی۔
  • ' رن کمانڈ کنٹینر میں مخصوص کمانڈ پر عمل کرے گی۔
  • ' بے نقاب کمانڈ اس بندرگاہ کی وضاحت کرتی ہے جہاں کنٹینر کو سنا جائے گا۔
  • ' سی ایم ڈی کنٹینر کے قابل عمل پوائنٹس کی وضاحت کرتا ہے۔

مرحلہ 2: گولانگ پروگرام بنائیں

اگلا، نام کی ایک اور فائل بنائیں main2.go 'اور نیچے فراہم کردہ گولانگ پروگرام کو پیسٹ کریں جو پورٹ پر ایک سادہ سٹرنگ پرنٹ کرتا ہے' 8080 ”:



اہم پیکیج

درآمد (

'fmt'

'لاگ'

'net/http'

)

فنک ہینڈلر ( میں http.ResponseWriter، r * http.Request ) {

html := `

DOCTYPE html >

< html >

< سر >

< عنوان > ہیلو گولانگ ! عنوان >

< انداز >

جسم {

پس منظر کا رنگ: #D2B48C؛

}

کنٹینر {

متن کی سیدھ: مرکز؛

پیڈنگ: 50px؛

}

انداز >

سر >

< جسم >

< div کلاس = 'کنٹینر' >

< h1 > ہیلو ! LinuxHint ٹیوٹوریل میں خوش آمدید h1 >

div >

جسم >

html >`

ڈبلیو ہیڈر ( ) .سیٹ ( 'مواد کی قسم' ، 'متن/html' )

fmt.Fprint ( میں , html )

}

فنک مین ( ) {

http.HandleFunc ( '/' ، ہینڈلر )

لاگ۔ مہلک ( http.ListenAndServe ( '0.0.0.0:8080' ، صفر ) )

}

مرحلہ 3: کنٹینر کا سنیپ شاٹ بنائیں

اب، اوپر دی گئی ڈوکر فائل سے کنٹینر کے لیے ایک سنیپ شاٹ بنائیں۔ اس مقصد کے لیے، پہلے اس ڈائرکٹری پر جائیں جہاں Dockerfile ' cd ' کمانڈ:

اگلا، دی گئی کمانڈ کا استعمال کرتے ہوئے نئی کنٹینر امیج بنائیں:

ڈاکر کی تعمیر -t golang-img

دیا گیا نتیجہ ظاہر کرتا ہے کہ تصویر فراہم کردہ تعمیراتی سیاق و سباق کے مطابق بنائی گئی ہے۔

مرحلہ 4: میزبان پورٹ کو کنٹینر پورٹ پر آگے بھیجیں۔

اب، کنٹینر پر عمل درآمد کریں اور مقامی مشین پر کنٹینر کے باہر ڈوکرائز ایپ تک رسائی کے لیے میزبان پورٹ کو کنٹینر پورٹ پر بھیجیں۔ اس مقصد کے لئے، چلائیں 'docker run -name -p : ' کمانڈ:

ڈاکر رن --نام جاری رکھیں -p 8080 : 8080 golang-img

یہاں، ' -p ڈوکر ہوسٹ پر کنٹینر ایگزیکیوٹنگ پورٹ کو شائع کرنے کے لیے پرچم کا استعمال کیا جاتا ہے:

مرحلہ 5: تصدیق

تصدیق کے لیے، 'کا استعمال کرتے ہوئے چلتے ہوئے کنٹینرز کو دیکھیں ڈاکر پی ایس ”:

ڈاکر پی ایس

ذیل کے نتیجے میں، کنٹینرائزڈ ایپلیکیشن دستیاب نیٹ ورک انٹرفیس پر سن رہی ہے ' 0.0.0.0 'شائع شدہ پورٹ پر' 8080 ' اس کا مطلب یہ ہے کہ پورٹ کو میزبان مشین پر چلنے والی ایپلیکیشن پر بھیج دیا گیا ہے:

اب، براؤزر لانچ کریں اور 'پر جائیں' http://localhost:8080/ اور تصدیق کریں کہ آیا پورٹ فارورڈنگ تکنیک لاگو ہے یا نہیں اور اگر کنٹینرائزڈ ایپلیکیشن میزبان سسٹم پر کنٹینر کے باہر قابل رسائی ہے:

یہاں ہم نے میزبان پورٹ کو کامیابی کے ساتھ کنٹینر پورٹ پر بھیج دیا ہے اور ایپلیکیشن ڈوکر ہوسٹ پر قابل رسائی ہے۔

ڈوکر کمپوز کا استعمال کرتے ہوئے ڈوکر میں پورٹ کو کیسے آگے بڑھایا جائے۔

کنٹینر کے باہر سے کنٹینرائزڈ ایپلیکیشن تک رسائی حاصل کرنے کے لیے کنٹینر پورٹ کو میزبان کو بھیجنے کے لیے، صارف ' بندرگاہ کمپوز یامل فائل میں کلید۔ ڈوکر کمپوز ایک ڈوکر سروس ہے جو ہمیں مختلف کنٹینرز میں مختلف سروسز اور ایپلیکیشنز چلانے کے قابل بناتی ہے۔ کا استعمال کرتے ہوئے ' docker-compose.yml ” فائل، صارف کنٹینر پورٹ کو میزبان مشین کو بھی بھیج سکتا ہے اور بیرونی دنیا سے ایپلیکیشن کنکشن رکھ سکتا ہے۔

عکاسی کے لیے درج ذیل طریقہ کار کو دیکھیں۔

مرحلہ 1: کمپوز فائل بنائیں

سب سے پہلے، نام کی ایک فائل بنائیں docker-compose.yml فائل میں درج ذیل مواد شامل کریں

ورژن: '3'

خدمات:

ویب:

تعمیر:

بندرگاہیں:

- 8080 : 8080

مندرجہ بالا ٹکڑوں میں، ' بندرگاہیں ” کلید کا استعمال میزبان کو کنٹینر پورٹ سے جوڑنے کے لیے کیا جاتا ہے۔ یہاں، پہلی قدر ہوسٹ پورٹ ہے، اور دوسری قدر کنٹینر پورٹ ہے۔

مرحلہ 2: ایپ لانچ کریں۔

کمپوز فائل میں ہدایات بتانے کے بعد، ایپلیکیشن کو ایک کنٹینر میں شروع کریں ' docker-کمپوز اپ ' کمانڈ:

docker-کمپوز اپ

مرحلہ 3: تصدیق

تصدیق کے لیے، 'کا استعمال کرتے ہوئے کمپوز کنٹینرز کی فہرست بنائیں docker-compose ps ' کمانڈ:

docker-compose پی ایس -a

یہ چیک کرنے کے لیے کہ آیا کنٹینر میزبان مشین پر قابل رسائی ہے، پر جائیں ' http://localhost:8080/ یو آر ایل۔ یہاں، آپ دیکھ سکتے ہیں کہ ہم نے میزبان پر کنٹینر پورٹ کو مؤثر طریقے سے آگے بڑھا دیا ہے:

پورٹ کو مخصوص نیٹ ورک پر کیسے آگے بڑھایا جائے۔

کنٹینر پورٹ کو کسی مخصوص نیٹ ورک پر فارورڈ کرنے کے لیے، صارف کو اس نیٹ ورک کی وضاحت کرنے کی ضرورت ہوتی ہے جس پر وہ کنٹینر تک رسائی حاصل کرنا چاہتے ہیں۔ - نیٹ ورک 'آپشن. مظاہرے کے لیے دیے گئے مراحل کو دیکھیں۔

مرحلہ 1: ایک نیٹ ورک بنائیں

'کا استعمال کرتے ہوئے ایک نیا نیٹ ورک بنائیں docker نیٹ ورک بنائیں ' کمانڈ. پہلے سے طے شدہ طور پر، یہ نیٹ ورک ایک پل ڈرائیور استعمال کرے گا:

docker نیٹ ورک mygo-network تخلیق کرتا ہے۔

ڈوکر نیٹ ورکس کو دیکھنے کے لیے، استعمال کریں ' ڈاکر نیٹ ورک ls ' کمانڈ:

ڈاکر نیٹ ورک ls

یہاں، ہم نے کامیابی کے ساتھ ' mygo-network 'جو استعمال کر رہا ہے' پل ڈرائیور:

مرحلہ 2: میپ نیٹ ورک

پورٹ فارورڈنگ تکنیک کا استعمال کرتے ہوئے مخصوص نیٹ ورک پر کنٹینر کو چلانے اور اس تک رسائی حاصل کرنے کے لیے، نیچے دی گئی کمانڈ کا استعمال کریں:

ڈاکر رن -p 8080 : 8080 --نیٹ ورک mygo-network golang-img

دی گئی کمانڈ میں، ' -p ” آپشن کنٹینر کو مخصوص نیٹ ورک کے مخصوص پورٹ پر شائع کرتا ہے۔ یہاں، ' - نیٹ ورک ' آپشن ڈوکر نیٹ ورک کی وضاحت کے لئے استعمال کیا جاتا ہے:

توثیق کے لیے، دوبارہ تشریف لے جائیں ' http://localhost:8080 پورٹ کریں اور چیک کریں کہ آیا کنٹینر مخصوص نیٹ ورک پر قابل رسائی ہے یا نہیں:

مندرجہ بالا آؤٹ پٹ اشارہ کرتا ہے کہ ہم نے کنٹینر پورٹ کو ایک مخصوص نیٹ ورک پر مؤثر طریقے سے آگے بڑھا دیا ہے۔

نوٹ: 'میزبان' نیٹ ورک کا استعمال کرتے ہوئے، صارف کو 'کا استعمال کرتے ہوئے پورٹ کو کنٹینر سے میزبان تک شائع کرنے کی ضرورت نہیں ہے۔ -p 'یا' - شائع کریں 'آپشن.

ڈوکر کمپوز کا استعمال کرتے ہوئے پورٹ کو مخصوص نیٹ ورک پر فارورڈ کریں۔

'میں درج ذیل ٹکڑا شامل کریں docker-compose.yml 'فائل. ذیل کے ٹکڑوں میں، ' نیٹ ورکس ' کلید کا استعمال نیٹ ورک کی وضاحت کے لیے کیا جاتا ہے:

ورژن: '3'
خدمات:

ویب:
تعمیر:
بندرگاہیں:
- 8080 : 8080

اب، ایپلی کیشن کو ایک کنٹینر میں شروع کریں ' docker-کمپوز اپ ' کمانڈ:

docker-کمپوز اپ

ہم نے ڈوکر میں پورٹ فارورڈنگ کے طریقوں کا احاطہ کیا ہے۔

نتیجہ

کنٹینر کے باہر ڈوکرائز ایپلی کیشن تک رسائی حاصل کرنے کے لیے ڈوکر میں بندرگاہ کو آگے بڑھانے کے لیے، صارف یا تو ' -p 'یا' - شائع کریں 'میں اختیار' ڈاکر رن ' کمانڈ یا صارف استعمال کر سکتا ہے ' بندرگاہیں ڈوکر کمپوز فائل میں کلید۔ کسی مخصوص نیٹ ورک پر کنٹینر تک رسائی حاصل کرنے کے لیے، صارف 'کا استعمال کرکے نیٹ ورک پر کنٹینر پورٹ کو آگے بھیج سکتا ہے۔ نیٹ ورک <نیٹ ورک> 'آپشن. اس بلاگ نے ڈوکر میں بندرگاہوں کو آگے بڑھانے کی تکنیک کا مظاہرہ کیا ہے۔