प्रॉक्सी कंटेनर DNS कंटेनरचा स्वयंचलितपणे वापर का करत नाही
Docker होस्ट सामायिक करणे, नेटवर्क सामायिक करणे आणि रिझॉल्व्हर निवडणे या तीन वेगळ्या गोष्टी आहेत. प्रॉक्सीच्या आतून DNS क्वेरीचा मागोवा घ्या.
एकाच Docker होस्टवर प्रॉक्सी आणि DNS सर्व्हर चालवल्याने त्यांचे DNS मार्ग जोडले जात नाहीत. तीन वेगळे संबंध महत्त्वाचे आहेत:
- नेटवर्क उपलब्धता. वेगळ्या Compose प्रकल्पांना सामान्यतः वेगळे डीफॉल्ट नेटवर्क असतात. सेवा योग्य सामायिक नेटवर्कवर ठेवा, एकतर एका प्रकल्पात किंवा प्रकल्पांमध्ये स्पष्टपणे सामायिक केलेल्या नेटवर्कद्वारे.
- सेवा शोध. सानुकूल Docker नेटवर्कचे अंतर्भूत DNS कंटेनर नावे सोडवू शकते. त्यामुळे अनुप्रयोगाला शेजारी शोधता येतो; परंतु ते त्या शेजाऱ्याला स्वयंचलितपणे आपला DNS रिझॉल्व्हर म्हणून निवडत नाही.
- रिझॉल्व्हर निवड. प्रॉक्सी कंटेनरमध्ये वापरला जाणारा रिझॉल्व्हर ओळखा. Composeचे
dnsफील्ड DNS सर्व्हरचे पत्ते घेते. अनुप्रयोगात सोडवले जाणारेdns.localसारखे नाव त्याला त्या फील्डसाठी वैध मूल्य बनवत नाही.
क्वेरीचा प्रॉक्सी कंटेनरपासून त्याच्या संरचित रिझॉल्व्हर पत्त्यापर्यंत मागोवा घ्या. त्या पत्त्यावर मार्ग आणि DNS श्रोता आहेत याची खात्री करा. होस्ट पोर्ट 53 प्रकाशित केल्याने होस्ट बाजूला प्रवेश मार्ग तयार होतो; परंतु तो कंटेनरना तो वापरण्यास सांगत नाही. नेटवर्क सामायिक करणारे कंटेनर त्याऐवजी थेट संवाद साधू शकतात.
जर संरचना DNS कंटेनरच्या पत्त्याचा संदर्भ देते, तर तो सुसंगत IPAM संरचनेखाली स्थिर ठेवा. कालच्या कंटेनरमधून कॉपी केलेला गतिशीलपणे वाटप केलेला पत्ता पुन्हा तयार करताना अयशस्वी होऊ शकतो. रिझॉल्व्हरचा अपस्ट्रीम मार्गही तपासा: अनुत्तरित क्वेरी त्याच्याकडेच परत पाठवल्याने अगम्य रिझॉल्व्हरपेक्षा वेगळी अयशस्वीता निर्माण होते.
शेवटी, गंतव्य कोण सोडवते ते ओळखा. CONNECT नाव सोडवणारा HTTP प्रॉक्सी हा कंटेनर मार्ग वापरू शकतो; स्थानिक पातळीवर सोडवणारा SOCKS क्लायंट कदाचित वापरणार नाही. होस्टवरील शोध होस्टचा मार्ग सिद्ध करतो, प्रॉक्सी प्रक्रियेचा नाही.