docker खिड़कियों और लिनक्स कंटेनरों के साथ नेटवर्क साझा करते हैं
मैं एक ही नेटवर्क के भीतर एक विंडोज़ और एक लिनक्स कंटेनर कनेक्ट करना चाहूंगा।
पहले मैं एक नेटवर्क बनाता हूं (विंडोज के लिए डॉकटर "विंडोज कंटेनर" पर सेट होता है):
docker network create --driver nat mynet
नेटवर्क बनाया जाता है और docker network ls
नए नेटवर्क को सूचीबद्ध करता है।
docker-compose.yml खिड़कियों और लिनक्स सेवा में शामिल हैं:
version: "3"
services:
...
networks:
mynet: {}
networks:
mynet:
external: true
साथ docker-compose up
खिड़कियों कंटेनर ठीक शुरू होता है, "लिनक्स कंटेनरों में स्विच करें" और लिनक्स कंटेनर निम्न त्रुटि दिखाया गया है शुरू करने के लिए प्रयास करने के बाद:
त्रुटि: नेटवर्क mynet बाहरी के रूप में घोषित किया गया था, लेकिन नहीं मिला। कृपया मैन्युअल रूप से नेटवर्क का उपयोग करें
docker network create mynet
और फिर से प्रयास करें।
इसके अलावा docker network ls
अब नेटवर्क को सूचीबद्ध नहीं करता है।
विंडोज़ और लिनक्स के बीच एक नेटवर्क साझा करने का सही तरीका क्या होगा?
जवाब
'स्विच टू लिनक्स कंटेनर' विकल्प पर टॉगल करने से आपके डॉकर को संदर्भों को एक लिनक्स vm के बीच आगे और पीछे स्विच करने का कारण बनता है जो डॉकर शीर्ष पर चलता है, और एक विंडोज़ ऑपरेटिंग सिस्टम।
जब आप ऐसा करते हैं, तो आप प्रभावी रूप से एक अलग डॉकटर संसाधनों पर स्विच कर रहे हैं जो एक दूसरे के बारे में नहीं जानते हैं। वे अलग ऑपरेटिंग सिस्टम पर हैं। दुर्भाग्य से, आप वह नहीं कर सकते जो आप कंपोज़ करने की कोशिश कर रहे हैं, क्योंकि कंपोज़ हमेशा सिंगल डेमन पर चलेगा, और सिंगल डेमन सिंगल ऑपरेटिंग सिस्टम पर चलता है। लेकिन आप अपनी खुद की एक लाइन vm सेट कर सकते हैं, उस पर डॉक इंस्टॉल कर सकते हैं, और अपनी विंडोज मशीन और अपने लिनक्स वीएम से मिलकर 2 नोड झुंड बना सकते हैं। इस तरह से आप एक पर अपने लिनक्स कंटेनर, दूसरे पर अपनी खिड़कियों के कंटेनर चला सकते हैं, और उन्हें एक नेटवर्क के माध्यम से कनेक्ट कर सकते हैं।