Docker ने पोर्ट प्रकाशित किया। क्या प्रॉक्सी वहाँ सुन रहा है?
जब कनेक्शन अस्वीकार या रीसेट होते हैं तो प्रॉक्सी कंटेनर के भीतर के लिसनर और Docker के होस्ट पोर्ट मैपिंग दोनों की जाँच करें।
प्रकाशित Docker पोर्ट कंटेनर के एंडपॉइंट तक एक रास्ता देता है। यह प्रॉक्सी को शुरू नहीं करता और उस पते को नहीं बदलता जिस पर वह प्रक्रिया सुनती है।
सामान्य ब्रिज-नेटवर्क मैपिंग के लिए इन तीन मानों की तुलना करें:
| रास्ते का भाग | जाँचने योग्य मान |
|---|---|
| क्लाइंट प्रवेश | वह होस्ट पता और प्रकाशित पोर्ट जिनसे क्लाइंट संपर्क करता है |
| फ़ॉरवर्डिंग लक्ष्य | मैपिंग द्वारा चुना गया कंटेनर पता और पोर्ट |
| सेवा | वह पता और पोर्ट जिन्हें प्रॉक्सी वास्तव में कंटेनर के भीतर बाँधता है |
कंटेनर के भीतर केवल 127.0.0.1 से बँधी प्रॉक्सी को उसके नेटवर्क पते पर फ़ॉरवर्ड किया गया ट्रैफ़िक न मिल सके। यह होस्ट लूपबैक पर केवल होस्ट पोर्ट प्रकाशित करने से भिन्न है: वह सीमित करता है कि मैपिंग तक कौन पहुँच सकता है, जबकि कंटेनर लूपबैक मैपिंग को सेवा तक पहुँचने से रोक सकता है।
इच्छित परिनियोजन के लिए आंतरिक लिसनर चुनें और साथ ही सीमित होस्ट प्रकाशन तथा प्रॉक्सी पहुँच बनाए रखें। Dockerfile की एक्सपोज़्ड-पोर्ट घोषणा कोई सेवा शुरू नहीं करती, और सफल कंटेनर लॉन्च यह सिद्ध नहीं करता कि प्रक्रिया फ़ॉरवर्डिंग लक्ष्य पर सुन रही है।
देखें कि विफल कनेक्शन कितनी दूर पहुँचता है। अस्वीकार और रीसेट प्लेटफ़ॉर्म और फ़ॉरवर्डिंग कार्यान्वयन के अनुसार बदलते हैं, इसलिए कोई भी अकेला सेटिंग की पहचान नहीं करता। सेवा तक पहुँचने पर मान्य प्रॉक्सी अभिवादन खोजें और आवश्यक SOCKS संस्करण, प्रमाणीकरण तथा गंतव्य नीति लागू करें। केवल पहुँच योग्य होस्ट पोर्ट उन क्षमताओं को सिद्ध नहीं कर सकता.