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 टाढाको builder वा सर्भरमा जस्ताको तस्तै चल्ने सम्भावना विशेष गरी कम हुन्छ।
इमेज डाउनलोडका समस्या अलग राख्नुहोस्: अनुप्रयोगले माथिको वातावरण प्रयोग गर्न सक्नुअघि daemon ले इमेज डाउनलोड गर्छ।