2016-02-29 5 views
5

documentation about networking is currently बहुत ही इस पर अस्पष्ट - आप कैसे पूरा करते हैं एक docker-compose.ymlकि बनाता है एक वर्चुअल नेटवर्क, दे सेवाएं (कंटेनर) यह द्वारा परिभाषित किया गया है कि नेटवर्क पर संवाद? इस परिदृश्य मेंआप एक संस्करण 2 डोकर-लिखें परिभाषा फ़ाइल में एक नेटवर्क कैसे परिभाषित करते हैं?

लक्ष्य एक पूर्व निर्धारित नेटवर्क पर भरोसा नहीं किया जा रहा, डोकर-लिखें सुविधा के लिए परिभाषित कंटेनरों का सम्मिश्रण के लिए। इसके बजाय डॉकर-कंपोज़ परिभाषा फ़ाइल में नेटवर्क परिभाषा स्वयं निहित है।

एक पूर्व निर्धारित नेटवर्क के साथ

, इस नीचे काम करेगा अगर A में आवेदन अपने बंदरगाह 9000. host:port यह प्रयोग करेंगे यह B:9000 होगा पर सुन B अंदर पैक आवेदन तक पहुँचने के लिए होस्ट नाम, जैसा कि नाम B इस्तेमाल किया (अधिक विशेष रूप से यूरी mongodb://B:9000 मेरे विशेष मामले में)।

एक डिफ़ॉल्ट नेटवर्क अपने आप बन जाता डॉ;

foo: 
    net: my-pre-defined-network 
    container_name: A 
    image: foo 
bar: 
    net: my-pre-defined-network 
    container_name: B 
    image: bar 
    ports: 
    - "9000:9000" 

लेकिन मेरी बात डोकर-लिखें विन्यास के अंदर एक नेटवर्क को परिभाषित किया जाता है, एक नहीं मानते हुए एक-प्रायोरी परिभाषित ...

टीएल था। कैसे इस नेटवर्क के भीतर कंटेनरों को संबोधित करने के लिए https://docs.docker.com/compose/networking/ की शुरुआत अनुभाग देखें।

+0

क्या नेटवर्क आपके द्वारा निर्धारित करना चाहते हैं? –

+0

एक यह है कि डोकर-लिखें द्वारा चलाए जा रहे दो कंटेनरों के बीच कनेक्ट करेगा। अभी के लिए एक ही मेजबान। – matanster

उत्तर

8

लिखें जब तक आप संस्करण 2 प्रारूप का उपयोग आप के लिए एक default नेटवर्क निर्माण करेंगे, लेकिन डॉक्स यदि आप नेटवर्क कस्टमाइज़ करना चाहते हैं यहां हैं:

आप कंपोज़ फ़ाइल के शीर्ष स्तर पर networks अनुभाग बना सकते हैं और उन्हें प्रत्येक सेवा के networks अनुभाग में संदर्भित कर सकते हैं। लेकिन आपको नीचे दी गई टिप्पणियों में वर्णित डिफ़ॉल्ट नेटवर्क का उपयोग करने की आवश्यकता नहीं है।

+0

मुझे यकीन नहीं है कि मेजबाननाम क्या होगा जिसमें किसी निहित एप्लिकेशन को अन्यथा संपर्क करने के लिए उपयोग करना चाहिए, ऐसे डिफ़ॉल्ट नेटवर्क पर (कंटेनर का नाम और न ही 'localhost' उस के लिए काम)। और हां, कोई डिफ़ॉल्ट बनाया नेटवर्क डोकर-रचना अप 'समाप्त हो गया है '' के बाद डोकर नेटवर्क ls' में दिखा रहा है। – matanster

+0

जब तक, कुछ अजीब छवि/रचना कैशिंग मेरे विभिन्न प्रयासों को विफल नहीं कर रही है .. – matanster

+0

यदि आप संस्करण 2 प्रारूप का उपयोग करते हैं, तो यह 'projectname_default' नामक एक नेटवर्क बनाएगा, जहां प्रोजेक्टनाम प्रोजेक्ट निर्देशिका के बेसनाम पर डिफ़ॉल्ट होगा। आप सेवा के नाम को होस्टनाम के रूप में कनेक्ट करने के लिए उपयोग करते हैं। तो आपके उदाहरण में 'foo' और' bar'। – dnephin

संबंधित मुद्दे

 संबंधित मुद्दे