मैं अपने सभी डॉकटर कंटेनरों को अपने प्रॉक्सी का उपयोग कैसे कर सकता हूं?


18

मैं डेबियन जेसी पर डॉक कर रहा हूं जो एक कॉर्पोरेट प्रॉक्सी के पीछे है। Docker की इमेज डाउनलोड करने में सक्षम होने के लिए, मुझे निम्नलिखित को अपने साथ जोड़ना होगा/etc/defaults/docker

http_proxy="http://localhost:3128/"

मैं पुष्टि कर सकता हूं कि यह काम करता है।

हालांकि, अपने कंटेनर के भीतर से इंटरवेब को एक्सेस करने में सक्षम होने के लिए, मुझे सभी सत्र शुरू करने --net hostऔर फिर इन एनवी चर को सेटअप करने की आवश्यकता है :

export http_proxy=http://localhost:3128/
export https_proxy=https://localhost:3128/
export ftp_proxy=${http_proxy}

आदर्श रूप से, मैं चाहूंगा कि कंटेनर को होस्ट नेटवर्क की आवश्यकता न हो, और प्रॉक्सी के बारे में पता न चले (अर्थात कंटेनर में 20, 80, 443 के सभी आउटबाउंड कॉल होस्ट के प्रॉक्सी पोर्ट से होकर जाएं)। क्या यह संभव है?

असफल होना, क्या साइट सेटअप करना संभव है, जो यह सुनिश्चित करेगा कि ये एनवी चर स्थानीय रूप से सेट हों लेकिन कभी भी छवि के हिस्से के रूप में निर्यात नहीं किए जाते हैं?

अद्यतन : मुझे पता है कि मैं इन चीजों को --env http_proxy=...आदि के साथ पारित कर सकता हूं , लेकिन यह स्पष्ट है। मैं यह सिस्टम पर सभी उपयोगकर्ताओं के लिए उपनाम का उपयोग किए बिना काम करना चाहता हूं।

जवाबों:


5

इस SO उत्तर को देखें :

होस्ट सर्वर एक प्रॉक्सी (स्क्वीड, इस मामले में) चलाने वाला एक कंटेनर चलाता है जो पारदर्शी प्रॉक्सिंग कर सकता है। उस कंटेनर में कुछ iptables नियम हैं जो NAT ट्रैफ़िक प्रॉक्सी सर्वर में हैं - इसका मतलब है कि कंटेनर को विशेषाधिकार प्राप्त मोड में चलाने की आवश्यकता है।

होस्ट सर्वर में (और यहां जादू है) आईपी रूट टेबल प्रविष्टियां हैं जो किसी भी कंटेनर से सभी ट्रैफ़िक को फिर से रूट करती हैं लेकिन प्रॉक्सी जो कि पोर्ट 80 के लिए नियत था, प्रॉक्सी कंटेनर के माध्यम से।

अंतिम रूप से यह अनिवार्य रूप से है कि पोर्ट 80 ट्रैफिक के लिए, कंटेनर से दुनिया के बाकी हिस्सों का मार्ग प्रॉक्सी कंटेनर से होकर गुजरता है - यह NAT और पारदर्शी प्रॉक्सी को मौका देता है।

https://github.com/silarsis/docker-proxy


यह "https" के लिए काम नहीं करेगा।
ceving
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.