كيفية إعداد بروكسي في Docker (الحاويات و Compose وبناء الصور)
آخر تحديث:
عند تشغيل أدوات جمع البيانات متعددة الحاويات أو عمال الأتمتة أو عقد DePIN على خادم مضيف واحد، فإن تمرير متغيرات البيئة HTTP_PROXY و HTTPS_PROXY لكل حاوية يتيح لكل خدمة الخروج عبر عنوان IPv4 ثابت مخصص لها من VinaProxy دون تغيير جدول توجيه الجهاز المضيف.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
فهم نطاقات تكوين بروكسي Docker الثلاثة
يفصل Docker بين حركة مرور تشغيل الحاوية وحركة مرور بناء الصور وسحب الصور من السجلات عبر البرنامج الخفي (Daemon):
| نطاق Docker | أين يتم التكوين | ما يتم توجيهه |
|---|---|---|
| 1. وقت تشغيل الحاوية (الأكثر شيوعاً) | docker run -e HTTP_PROXY=... أو environment: في Compose | حركة المرور الصادرة من التطبيق داخل تلك الحاوية المحددة |
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 وبيئات التشغيل - أدرج دائماً أسماء خدمات Docker Compose الداخلية (مثل
NO_PROXY=localhost,127.0.0.1,redis,postgres) لتبقى حركة المرور بين الحاويات على شبكة الجسر المحلية (bridge) - لا تضع أبداً كلمات مرور البروكسي داخل صور عامة باستخدام
ENVفيDockerfile—قم بتمريرها وقت التشغيل عبر.envأوdocker-compose.yml
خطوة بخطوة
- 1
تنسيق البروكسي كـ http://user:pass@ip:port
قم بتحويل سطر 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 الخروج من داخل الحاوية
نفّذ
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipللتأكد من أن الحاوية تخرج عبر عنوان IP البروكسي الخاص بك.
الأسئلة الشائعة
لماذا لا تتمكن حاويتي من الاتصال بحاوية Redis أو Postgres بعد ضبط HTTP_PROXY؟
بدون NO_PROXY، يحاول عميل HTTP الوصول إلى أسماء الخدمات الداخلية مثل redis أو db عبر البروكسي الخارجي. أضف NO_PROXY=localhost,127.0.0.1,redis,db (وبالأحرف الصغيرة no_proxy) لتجاوز البروكسي للمضيفين الداخليين على شبكة bridge.
هل يمكنني تعيين 20 بروكسي مختلف لـ 20 حاوية على خادم VPS واحد؟
نعم. حدد لكل خدمة حاوية (أو مرر متغيرات .env منفصلة) سلسلة http://user:pass@ip:port الخاصة بها.
لماذا يجب ضبط متغيرات البروكسي بالأحرف الكبيرة والصغيرة معاً؟
بعض مكتبات Linux (مثل libcurl) تتحقق من الأحرف الصغيرة http_proxy أولاً، بينما تقرأ أدوات Go و Node عادةً الأحرف الكبيرة HTTP_PROXY.
تعيين عناوين IP ثابتة ومخصصة لكل حاوية Docker
بروكسيات IPv4 مخصصة و ISP ثابتة غير محدودة النطاق الترددي عبر 7 دول.
شراء بروكسي Docker