Docker میں پراکسی کیسے سیٹ اپ کریں (Containers، Compose اور Builds)
Updated:
ایک ہی ہوسٹ سرور پر ملٹی کنٹینر اسکریپرز، آٹومیشن ورکرز، یا DePIN نوڈز چلاتے وقت، ہر کنٹینر کے لیے HTTP_PROXY اور HTTPS_PROXY انوائرنمنٹ متغیرات پاس کرنے سے ہر سروس ہوسٹ مشین کے راؤٹنگ ٹیبل کو تبدیل کیے بغیر VinaProxy سے اپنے وقف شدہ اسٹیٹک IPv4 ایڈریس کے ذریعے باہر نکل سکتی ہے۔
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
Docker پراکسی کنفیگریشن کے 3 اسکوپس کو سمجھنا
Docker کنٹینر رن ٹائم ٹریفک، امیج بلڈ ٹریفک، اور ڈیمن رجسٹری پلز کو الگ الگ رکھتا ہے:
| Docker اسکوپ | کہاں کنفیگر کریں | یہ کیا روٹ کرتا ہے |
|---|---|---|
| 1. کنٹینر رن ٹائم | docker run -e HTTP_PROXY=... یا Compose environment: | اس مخصوص کنٹینر کے اندر موجود ایپ سے پیدا ہونے والی ٹریفک |
2. امیج بلڈ (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | بلڈ کے دوران پیکیج مینیجر ڈاؤن لوڈز (apt، pip، npm) |
3. Docker ڈیمن (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | رجسٹریز کے لیے docker pull اور docker push کی درخواستیں |
Docker Compose کے بہترین طریقے اور NO_PROXY کے اصول
- بڑے حروف (
HTTP_PROXY،HTTPS_PROXY،NO_PROXY) اور چھوٹے حروف (http_proxy،https_proxy،no_proxy) دونوں متغیرات سیٹ کریں تاکہ تمام Linux CLI ٹولز اور لینگویج رن ٹائمز انہیں حاصل کر سکیں - ہمیشہ اندرونی Docker Compose سروس کے نام درج کریں (مثلاً
NO_PROXY=localhost,127.0.0.1,redis,postgres) تاکہ کنٹینرز کے درمیان ٹریفک لوکل برج نیٹ ورک پر ہی رہے - کبھی بھی پبلک امیجز میں
ENVکے ساتھDockerfileکے اندر پراکسی پاس ورڈز شامل نہ کریں—انہیں رن ٹائم پر.envیاdocker-compose.ymlکے ذریعے شامل کریں
مرحلہ وار
- 1
اپنی پراکسی کو http://user:pass@ip:port کے طور پر فارمیٹ کریں
ہمارے Proxy Format Converter کا استعمال کرتے ہوئے اپنی VinaProxy کی
ip:port:user:passلائن کو تبدیل کریں۔ - 2
docker-compose.yml میں انوائرنمنٹ متغیرات شامل کریں
اپنی سروس کے
environment:کے تحتHTTP_PROXY،HTTPS_PROXY،http_proxy،https_proxy، اورNO_PROXY=localhost,127.0.0.1,redis,dbکی وضاحت کریں۔ - 3
کنٹینر کو شروع کریں یا دوبارہ بنائیں
انوائرنمنٹ متغیرات لاگو کرنے کے لیے
docker compose up -dچلائیں۔ - 4
کنٹینر کے اندر سے ایگزٹ IP کی تصدیق کریں
یہ تصدیق کرنے کے لیے کہ کنٹینر آپ کے پراکسی IP کے ذریعے باہر نکلتا ہے،
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipچلائیں۔
اکثر پوچھے جانے والے سوالات
HTTP_PROXY سیٹ کرنے کے بعد میرا کنٹینر میرے Redis یا Postgres کنٹینر تک کیوں نہیں پہنچ پاتا؟
NO_PROXY کے بغیر، آپ کا HTTP کلائنٹ بیرونی پراکسی کے ذریعے redis یا db جیسے اندرونی سروس کے ناموں تک پہنچنے کی کوشش کرتا ہے۔ اندرونی برج ہوسٹس کے لیے پراکسی کو بائی پاس کرنے کی خاطر NO_PROXY=localhost,127.0.0.1,redis,db (اور چھوٹے حروف میں no_proxy) شامل کریں۔
کیا میں ایک VPS پر 20 کنٹینرز کے لیے 20 مختلف پراکسیز تفویض کر سکتا ہوں؟
جی ہاں۔ ہر کنٹینر سروس کو (یا الگ الگ .env متغیرات پاس کر کے) اس کی اپنی http://user:pass@ip:port اسٹرنگ کے ساتھ متعین کریں۔
بڑے اور چھوٹے دونوں حروف میں پراکسی متغیرات کیوں سیٹ کیے جاتے ہیں؟
کچھ Linux لائبریریاں (جیسے libcurl) پہلے چھوٹے حروف والے http_proxy / https_proxy کو چیک کرتی ہیں، جبکہ Go اور Node ٹولز اکثر بڑے حروف والے HTTP_PROXY / HTTPS_PROXY کو چیک کرتے ہیں۔
ہر Docker کنٹینر کے لیے وقف شدہ اسٹیٹک IPs تفویض کریں
7 ممالک میں فوری لامحدود Dedicated IPv4 اور Static ISP پراکسیز۔
Docker پراکسیز خریدیں