मेरे पास मेरे सर्वर (ऐप और web_server) पर 2 अलग-अलग कंटेनर चल रहे हैं। वे एक ही नेटवर्क में हैं, क्योंकि मैंने उन्हें एक ही नेटवर्क में रखा है और उस नेटवर्क का ड्राइवर ब्रिज है।

networks:
  app-network:
    driver: bridge

अब, मेरे पास तीसरा कंटेनर है, जिसे मेरे द्वारा बताए गए 2 कंटेनरों में से एक को जोड़ने की आवश्यकता है। मैं इस तरह तीसरे कंटेनर से पहले कंटेनर से कनेक्ट करने का प्रयास करता हूं: ऐप: 9000, लेकिन यह कहता है कि होस्ट नहीं मिला। मुझे लगता है कि ऐसा इसलिए है क्योंकि वे अलग-अलग नेटवर्क में हैं। इसे काम करने के लिए मुझे क्या करना चाहिए?

0
Nika Kurashvili 1 मार्च 2019, 19:36

1 उत्तर

सबसे बढ़िया उत्तर

आपको दोनों कंटेनरों को एक ही नेटवर्क से जोड़ने की आवश्यकता है। या तो एक नया नेटवर्क बनाकर और फिर उसमें शामिल हों या उनमें से एक दूसरे कंटेनर के नेटवर्क से जुड़ जाए।

Docker-compose.yml जहां आपके पास container1 और container2 हैं:

  • एक बाहरी नेटवर्क को परिभाषित करें जो container3 से संबंधित है
  • इन दो कंटेनरों में से एक को दो बाहरी नेटवर्क में जोड़ें जैसा कि पहले स्निपेट में दिखाया गया है

Docker-compose.yml जहां आपके पास container3 है, वह ब्रिज नेटवर्क के साथ एक सामान्य docker-compose होगा।

तीसरे नेटवर्क को पहले बनाने की अनुमति देने के लिए आपको पहले तीसरा कंटेनर शुरू करना सुनिश्चित करना होगा या आप डॉकर क्ली का उपयोग करके मैन्युअल रूप से तीसरा नेटवर्क बना सकते हैं और परिभाषा को बाहरी में बदल सकते हैं

#docker-compose.yml

container1:
  networks:
    - first_network
    - second_network

networks:
  first_network:
    driver: bridge
  second_network:
    external: true
#docker-compose.yml
container3:
  networks:
    - second_network

networks:
  second_network:
    driver: bridge
1
Mostafa Hussein 1 मार्च 2019, 16:53