الوصول إلى وكيل المضيف من حاوية Docker على شبكة bridge
اختر عنوان وكيل يمكن للحاوية الوصول إليه، وميّز النقطة العامة من وكيل يعمل على مضيف Docker.
في حاوية عادية على شبكة bridge، يكون 127.0.0.1 عنوان الاسترجاع الخاص بالحاوية نفسها. وكيل يستمع على localhost في حاسوبك لا يستمع تلقائيًا داخل كل حاوية.
هذا يفسر نتيجة شائعة: يعمل عنوان الوكيل نفسه في طرفية المضيف، لكن يعطي رفض اتصال داخل الحاوية. يشير العنوان إلى نقطة شبكة مختلفة في كل موضع.
يمكن استخدام وكيل عام مباشرة
إذا كانت النقطة المختارة من خدمة أو قائمة وكلاء 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 لا يحوّل كل مقبس إلى طلب وكيل لمجرد وجود المتغيرات.
إذا كان الوكيل يعمل على مضيف 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 الأصلي قد تظل خدمة مربوطة فقط باسترجاع المضيف غير قابلة للوصول عبر عنوان bridge للمضيف. يجب أن يسمح المستمع والجدار الناري ومسار الحاوية بالاتصال. إذا غيّرت المستمع، فاقصره على العملاء المحتاجين بدل إنشاء وكيل مفتوح بلا مصادقة.
اختبر من مكان التطبيق نفسه
نتيجة curl على المضيف تختبر مساره فقط. أرسل الطلب من بيئة الحاوية وتحقق من بلوغه النقطة المقصودة.
تعني كلمة «المضيف» أيضًا الجهاز الذي يشغّل Docker Engine. مع Engine بعيد، ليس بالضرورة حاسوبك المحمول. لذا فمن المستبعد خصوصًا أن يعمل IP استرجاع منسوخ من تطبيق مكتبي محلي دون تغيير على منشئ أو خادم بعيد.
افصل مشكلات سحب الصور: ينزّل البرنامج الخدمي الصورة قبل أن يستطيع التطبيق استخدام البيئة المعروضة أعلاه.