بندرگاہوں کو بے نقاب کرنے کے لیے ڈاکر فائل کا استعمال۔

Using Dockerfile Expose Ports



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

اس آرٹیکل میں ، میں آپ کو دکھاتا ہوں کہ کس طرح بندرگاہوں کو بے نقاب کرنا ہے۔ ڈاکر فائل۔ ایک حقیقی دنیا کی مثال کے ساتھ آو شروع کریں.







سب سے پہلے ، ہمیں ایک پروجیکٹ ڈائرکٹری بنانی ہوگی۔ اس ڈائرکٹری میں ، آپ کو تمام پروجیکٹ فائلیں اور ایک رکھنا چاہیے۔ ڈاکر فائل۔ .



پروجیکٹ ڈائرکٹری بنانے کے لیے درج ذیل کمانڈ چلائیں۔ myapp/ اپنے صارفین کی ہوم ڈائریکٹری میں جائیں اور اس پر جائیں:



$mkdir۔/myapp&& سی ڈی۔/myapp





ویب ایپ کو تیار کرنا:

اب ایک ڈائریکٹری بنائیں۔ src/ کے اندر my/myapp/ مندرجہ ذیل کمانڈ کے ساتھ ڈائریکٹری:

$mkdirsrc



میں src/ ڈائریکٹری ، میری نوڈ جے ایس ایپلی کیشن کا تمام سورس کوڈ رکھا جائے گا۔

میں صرف ایک سادہ تخلیق کروں گا۔ app.js فائل میں src/ ڈائریکٹری اور پورٹ پر ایک سادہ ویب سرور چلائیں۔ 8080۔ صرف مظاہرے کے لیے

کی src/app.js فائل میں کوڈ کی درج ذیل لائنیں ہیں:

ڈاکر فائل لکھنا اور بندرگاہوں کو بے نقاب کرنا:

اب ایک بنائیں۔ ڈاکر فائل۔ میں my/myapp مندرجہ ذیل کمانڈ کے ساتھ ڈائریکٹری:

$چھوناڈاکر فائل۔

اب درج ذیل لائنوں کو ٹائپ کریں ڈاکر فائل۔ اور اسے بچائیں. میں بات کروں گا کہ ان سطور کا کیا مطلب ہے۔

یہاں ، الپائن سے: 3.8۔ کا مطلب ہے ، استعمال کریں الپائن: 3.8۔ ڈوکر امیج نئی تصویر کی بنیاد کے طور پر جسے ہم اس سے تعمیر کریں گے۔ ڈاکر فائل۔ .

RUN apk اپ ڈیٹ۔ مطلب ، چلائیں apk اپ ڈیٹ بیس ڈوکر امیج میں کمانڈ۔ الپائن: 3.8۔ .

RUN apk میں –no-cache nodejs شامل کریں۔ مطلب ، چلائیں apk شامل کریں۔ میں نوڈ جے ایس پروگرامنگ لینگویج انسٹال کرنے کا حکم۔ الپائن: 3.8۔ ڈوکر بیس امیج۔

کاپی ./src /ایپ کا مطلب ہے ، تمام فائلوں کو کاپی کریں my/myapp/src ڈائریکٹری کو /ایپ۔ نئی ڈوکر امیج کی ڈائریکٹری جسے ہم استعمال کرتے ہوئے بنائیں گے۔ ڈاکر فائل۔ .

CMD [/usr/bin/node ، /app/app.js] مطلب ، چلائیں /app/app.js استعمال کرتے ہوئے نئے کنٹینر سے فائل نوڈ بائنری میں واقع /usr/bin/node .

آخر میں ، کو۔ ایکسپوز 8080/tcp اس کا مطلب ہے ، ٹی سی پی پورٹ کو بے نقاب کرنا یا کھولنا۔ 8080۔ میزبان کمپیوٹر پر

ڈاکر فائل کا استعمال کرتے ہوئے کسٹم ڈوکر امیج بنانا:

اب آئیے اپنی مرضی کے مطابق ڈوکر امیج بناتے ہیں۔ الپائن نوڈ: v1 کا استعمال کرتے ہوئے ڈاکر فائل۔ جسے ہم نے ابھی بنایا ہے۔

پہلے اس بات کو یقینی بنائیں کہ آپ اس میں ہیں۔ my/myapp/ ڈائریکٹری اور پھر اپنی مرضی کے مطابق ڈوکر امیج بنانے کے لیے درج ذیل کمانڈ چلائیں۔ الپائن نوڈ: v1 :

$ڈوکر بلڈ-ٹیالپائن نوڈ: v1.

جیسا کہ آپ دیکھ سکتے ہیں ، کسٹم ڈوکر امیج۔ الپائن نوڈ: v1 بنایا جا رہا ہے. مطلوبہ بیس ڈوکر امیج اور پیکجز کو انٹرنیٹ سے نکالا جا رہا ہے۔

جیسا کہ آپ دیکھ سکتے ہیں ، کسٹم ڈوکر امیج۔ الپائن نوڈ: v1 کامیابی سے بنایا گیا ہے۔

کسٹم ڈوکر امیج کی جانچ کرنا:

اب ہم اپنی مرضی کے مطابق ڈوکر امیج کی جانچ کر سکتے ہیں۔ الپائن نوڈ: v1 بہت آسانی سے. ہمیں صرف ایک کنٹینر بنانا ہے۔ الپائن نوڈ: v1 تصویر.

ڈوکر کنٹینر بنانے کے لیے درج ذیل کمانڈ چلائیں۔ www سے الپائن نوڈ: v1 ڈوکر امیج:

$ڈاکر رن-ڈی -یہ -نامwww الپائن نوڈ: v1۔

کنٹینر۔ www تخلیق کیا جاتا ہے.

اب آئی پی کا پتہ معلوم کریں۔ www ڈوکر کنٹینر درج ذیل کمانڈ کے ساتھ:

$ڈاکر www| گرفتپتہ۔

جیسا کہ آپ دیکھ سکتے ہیں ، میرے معاملے میں ، IP ایڈریس ہے۔ 172.17.0.3۔ . لہذا نوڈ جے ایس ایپلی کیشن جو میں نے لکھی ہے وہ پورٹ پر ویب براؤزر سے قابل رسائی ہونی چاہیے۔ 8080۔ اس IP پتے کا.

ووئلا! میں بندرگاہ تک رسائی حاصل کر سکتا ہوں۔ 8080۔ میری www ڈوکر کنٹینر۔

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

Dockerfile کا استعمال کرتے ہوئے TCP اور UDP بندرگاہوں کو بے نقاب کرنا:

اس آرٹیکل کے پہلے حصے میں ، میں نے آپ کو دکھایا کہ کس طرح ٹی سی پی پورٹ کو بے نقاب کرنا ہے a ڈاکر فائل۔ .

آپ آسانی سے ٹی سی پی پورٹ کو بے نقاب کرسکتے ہیں (آئیے ٹی سی پی پورٹ کہتے ہیں۔ 53۔ ) آپ میں ڈاکر فائل۔ مندرجہ ذیل لائن کے ساتھ:

ایکسپوز53۔/ٹی سی پی

آپ یو ڈی پی پورٹ کو بھی بے نقاب کرسکتے ہیں (آئیے یو ڈی پی پورٹ کہتے ہیں۔ 53۔ ) میں درج ذیل لائن کے ساتھ ڈاکر فائل۔ :

ایکسپوز53۔/یو ڈی پی

آپ ایک ہی وقت میں TCP اور UDP پورٹ کو بے نقاب کر سکتے ہیں مندرجہ ذیل لائنوں میں آپ کے ساتھ۔ ڈاکر فائل۔ :

ایکسپوز53۔/ٹی سی پی
ایکسپوز53۔/یو ڈی پی

اگر آپ یہ نہیں بتاتے کہ کون سا پروٹوکول (TCP یا UDP) استعمال کرنا ہے تو ، TCP بطور ڈیفالٹ استعمال ہوتا ہے۔ مثال کے طور پر ، اگر آپ مندرجہ ذیل لائن اپنے ڈاکر فائل۔ :

ایکسپوز53۔

پھر ڈوکر فرض کرے گا کہ آپ TCP پورٹ 53 استعمال کرنا چاہتے ہیں۔

ڈاکر فائل کا استعمال کرتے ہوئے متعدد بندرگاہوں کو بے نقاب کرنا:

ہم کہتے ہیں کہ آپ اپنی مرضی کے مطابق MEAN اسٹیک ڈوکر امیج بنانا چاہتے ہیں۔ اس معاملے میں ، آپ کسی بندرگاہ پر HTTP سرور چلا رہے ہوں گے (آئیے TCP پورٹ 80 یا 8080 کہتے ہیں) ، ایک FTP سرور جو TCP پورٹ 21 پر چلتا ہے ، ایک SQL ڈیٹا بیس سرور (آئی ایس کیو ایل کہتے ہیں) جو TCP پورٹ 3306 پر چلتا ہے ، یا NoSQL ڈیٹا بیس سرور (آئیے مانگو ڈی بی کہتے ہیں) جو TCP پورٹ 27017 یا 27018 پر چلتا ہے ، ایک SSH سرور جو TCP پورٹ 22 پر چلتا ہے۔ یہ بہت سی بندرگاہیں ہیں!

اچھی خبر ہے آپ اپنی کسٹم ڈوکر امیج پر ضرورت کے مطابق زیادہ سے زیادہ بندرگاہوں کو بے نقاب کرسکتے ہیں۔ ڈاکر فائل۔ .

مندرجہ بالا مثال میں بندرگاہوں کو آپ کی درج ذیل لائنوں کے ساتھ بے نقاب کیا جاسکتا ہے۔ ڈاکر فائل۔ :

ایکسپوز80۔/ٹی سی پی
ایکسپوز8080۔/ٹی سی پی
ایکسپوزاکیس/ٹی سی پی
ایکسپوز22۔/ٹی سی پی
ایکسپوز3306۔/ٹی سی پی
ایکسپوز27017۔/ٹی سی پی
ایکسپوز27018۔/ٹی سی پی

اگر آپ چاہیں تو ، آپ پروٹوکول کی تفصیلات چھوڑ سکتے ہیں کیونکہ ڈوکر TCP کو بطور ڈیفالٹ استعمال کرتا ہے اور آپ کے درج ذیل لائنوں کے ساتھ وہی کام کریں ڈاکر فائل۔ :

ایکسپوز80۔
ایکسپوز8080۔
ایکسپوزاکیس
ایکسپوز22۔
ایکسپوز3306۔
ایکسپوز27017۔
ایکسپوز27018۔

اگر آپ کو ضرورت ہو تو ، آپ اپنے میں TCP اور UDP بندرگاہوں کو ملا سکتے ہیں۔ ڈاکر فائل۔ . مثال کے طور پر ، اگر آپ DNS سرور چلاتے ہیں (جو کہ UDP پورٹ 53 پر چلتا ہے) ، مندرجہ بالا مثال کے ساتھ ، آپ مندرجہ ذیل لائنوں کو اپنے ڈاکر فائل۔ .

ایکسپوز80۔
ایکسپوز8080۔
ایکسپوزاکیس
ایکسپوز22۔
ایکسپوز53۔/یو ڈی پی
ایکسپوز3306۔
ایکسپوز27017۔
ایکسپوز27018۔

اس طرح آپ بندرگاہوں کو استعمال کرتے ہوئے بے نقاب کرتے ہیں۔ ڈاکر فائل۔ . کے بارے میں مزید جاننے کے لیے۔ ڈاکر فائل۔ اور استعمال کرتے ہوئے بندرگاہوں کو بے نقاب کرنا۔ ڈاکر فائل۔ ، پڑھو ڈاکر فائل۔ پر حوالہ گائیڈ https://docs.docker.com/engine/reference/builder/#expose

اس مضمون کو پڑھنے کے لیے شکریہ۔