Docker bridge کنٹینر سے ہوسٹ کی پراکسی تک رسائی
کنٹینر سے قابل رسائی پراکسی پتہ منتخب کریں اور عوامی اینڈپوائنٹ کو Docker ہوسٹ کی پراکسی سے الگ پہچانیں۔
عام bridge نیٹ ورک والے کنٹینر میں 127.0.0.1 خود کنٹینر کا loopback پتہ ہوتا ہے۔ لیپ ٹاپ کے localhost پر سننے والی پراکسی ہر کنٹینر کے اندر خود بخود نہیں سنتی۔
اس سے عام فرق سمجھ آتا ہے: وہی پراکسی URL ہوسٹ کے ٹرمینل میں کام کرتا ہے مگر کنٹینر میں کنکشن مسترد ہو جاتا ہے۔ ہر جگہ پتہ مختلف نیٹ ورک اینڈپوائنٹ کی طرف اشارہ کرتا ہے۔
عوامی پراکسی براہ راست استعمال کی جا سکتی ہے
اگر کسی سروس یا HTTP پراکسی فہرست سے منتخب کردہ اینڈپوائنٹ واقعی قابل رسائی عوامی IP ہے تو اسے localhost میں بدلنے کے بجائے وہ پتہ ایپلیکیشن کو دیں:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
دستاویز کی مثال والا پتہ اور امیج بدلیں۔ امیج کے اندر پروگرام کو ان ماحولیاتی متغیرات کی اب بھی معاونت کرنی ہوگی؛ صرف متغیرات موجود ہونے کی وجہ سے Docker ہر socket کو پراکسی کے ذریعے جانے والی درخواست نہیں بناتا۔
اگر پراکسی Docker ہوسٹ پر چل رہی ہو
ہوسٹ کے اندرونی پتے تک پہنچنے کے لیے Docker Desktop host.docker.internal فراہم کرتا ہے۔ معاونت یافتہ مقامی Engine ترتیب میں ہوسٹ میپنگ یہ روایتی نام دے سکتی ہے:
docker run --rm \
--add-host host.docker.internal=host-gateway \
-e HTTP_PROXY=http://host.docker.internal:8080 \
-e HTTPS_PROXY=http://host.docker.internal:8080 \
your-image
اس سے نام کا حل بدلتا ہے؛ یہ پورٹ فارورڈنگ کمانڈ نہیں۔ مقامی Linux پر صرف ہوسٹ کے loopback سے منسلک سروس ہوسٹ کے bridge پتے کے ذریعے اب بھی ناقابل رسائی ہو سکتی ہے۔ لسنر، فائر وال اور کنٹینر کے راستے کو اس کنکشن کی اجازت دینی چاہیے۔ لسنر بدلیں تو تصدیق کے بغیر کھلی پراکسی بنانے کے بجائے اسے رسائی کے محتاج کلائنٹس تک محدود کریں۔
ایپلیکیشن والی جگہ سے ہی آزمائیں
ہوسٹ پر curl کا نتیجہ صرف ہوسٹ کا راستہ آزماتا ہے۔ متعلقہ درخواست کنٹینر کے ماحول سے بھیجیں اور دیکھیں کہ مطلوبہ اینڈپوائنٹ تک پہنچتی ہے یا نہیں۔
’ہوسٹ‘ سے مراد Docker Engine چلانے والی مشین بھی ہے۔ ریموٹ Engine کی صورت میں یہ لازماً آپ کا لیپ ٹاپ نہیں۔ اس لیے مقامی ڈیسک ٹاپ ایپلیکیشن سے نقل کیا گیا loopback IP ریموٹ بلڈر یا سرور پر بغیر تبدیلی کام کرے، اس کا امکان خاص طور پر کم ہے۔
امیج ڈاؤن لوڈ کے مسائل الگ رکھیں: ایپلیکیشن کے اوپر والا ماحول استعمال کر سکنے سے پہلے ڈیمَن امیج ڈاؤن لوڈ کرتا ہے۔