यही कारण है कि होना चाहिए क्या --link
के लिए है होस्टनाम भाग के लिए कम से कम,।
साथ डोकर 1.10, और पीआर 19,242 , कि होगा:
docker network create --net-alias=[]: Add network-scoped alias for the container
(नीचे अंतिम अनुभाग देखें)
यह वह है जो फ़ाइल विवरण को अपडेट कर रहा है/etc/hosts
पर्यावरण चर के अलावा, डॉकर /etc/hosts
फ़ाइल में स्रोत कंटेनर के लिए एक मेजबान प्रविष्टि जोड़ता है ।
उदाहरण के लिए, LDAP सर्वर लॉन्च करें:
docker run -t --name openldap -d -p 389:389 larrycai/openldap
और LDAP सर्वर का परीक्षण करने के लिए एक छवि परिभाषित करें:
FROM ubuntu
RUN apt-get -y install ldap-utils
RUN touch /root/.bash_aliases
RUN echo "alias lds='ldapsearch -H ldap://internalopenldap -LL -b
ou=Users,dc=openstack,dc=org -D cn=admin,dc=openstack,dc=org -w
password'" > /root/.bash_aliases
ENTRYPOINT bash
आप परीक्षण छवि के भीतर ' openldap
' कंटेनर को ' internalopenldap
' के रूप में उजागर कर सकते हैं -
docker run -it --rm --name ldp --link openldap:internalopenldap ldaptest
फिर, यदि आप 'lds' टाइप करते हैं, तो वह उपनाम काम करेगा:
ldapsearch -H ldap://internalopenldap ...
वह लोगों को लौटा देगा। मतलब इमेज internalopenldap
से सही तरीके से पहुंचा है ldaptest
।
बेशक, डॉकटर 1.7 जोड़ देगा libnetwork
, जो कंटेनरों को जोड़ने के लिए एक देशी गो कार्यान्वयन प्रदान करता है। ब्लॉग पोस्ट देखें ।
इसने कंटेनर नेटवर्क मॉडल (CNM) के साथ एक और पूर्ण वास्तुकला पेश किया।
यह नए "नेटवर्क" कमांड के साथ डॉकर सीएलआई को अपडेट करेगा, और दस्तावेज़ों को " -net
" ध्वज का उपयोग कैसे किया जाता है, जो कंटेनरों को नेटवर्क में असाइन करने के लिए उपयोग किया जाता है।
डॉकटर १.१० में एक नया खंड नेटवर्क-स्कॉप्ड उर्फ है , जिसे अब आधिकारिक रूप से प्रलेखित किया गया हैnetwork connect
:
हालांकि लिंक निजी नाम रिज़ॉल्यूशन प्रदान करते हैं जो एक कंटेनर के भीतर स्थानीयकृत होता है, नेटवर्क-स्कॉप्ड उर्फ किसी विशेष नेटवर्क के दायरे में किसी अन्य कंटेनर द्वारा वैकल्पिक नाम से खोजे जाने वाले कंटेनर के लिए एक तरीका प्रदान करता है।
लिंक उर्फ के विपरीत, जिसे एक सेवा के उपभोक्ता द्वारा परिभाषित किया गया है, नेटवर्क-स्कॉप्ड उर्फ को कंटेनर द्वारा परिभाषित किया गया है जो नेटवर्क को सेवा प्रदान कर रहा है।
उपरोक्त उदाहरण के साथ जारी रखते हुए, isolated_nw
नेटवर्क उपनाम के साथ एक और कंटेनर बनाएं ।
$ docker run --net=isolated_nw -itd --name=container6 -alias app busybox
8ebe6767c1e0361f27433090060b33200aac054a68476c3be87ef4005eb1df17
--alias=[]
कंटेनर के लिए नेटवर्क-स्कॉप्ड उपनाम जोड़ें
आप --link
किसी अन्य कंटेनर को पसंदीदा उपनाम से लिंक करने के लिए विकल्प का उपयोग कर सकते हैं
आप उन कंटेनरों को रोक सकते हैं, पुनः आरंभ कर सकते हैं, और उन कंटेनरों को रोक सकते हैं जो एक नेटवर्क से जुड़े हैं। रुके हुए कंटेनर जुड़े रहते हैं और एक नेटवर्क निरीक्षण द्वारा प्रकट किया जा सकता है। जब कंटेनर बंद हो जाता है, तो यह नेटवर्क पर तब तक दिखाई नहीं देता है जब तक आप इसे पुनरारंभ नहीं करते हैं।
यदि निर्दिष्ट किया जाता है, तो कंटेनर के आईपी पते (एस) को फिर से लागू किया जाता है जब एक रोका कंटेनर को पुनरारंभ किया जाता है। यदि IP पता अब उपलब्ध नहीं है, तो कंटेनर प्रारंभ करने में विफल रहता है।
यह निर्धारित करने का एक तरीका है कि आईपी पता उपलब्ध है --ip-range
, नेटवर्क बनाते समय निर्दिष्ट करना है, और उस सीमा के बाहर से स्थिर आईपी पता (तों) चुनना है। यह सुनिश्चित करता है कि आईपी पता किसी अन्य कंटेनर को नहीं दिया गया है जबकि यह कंटेनर नेटवर्क पर नहीं है।
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2
$ docker network connect --link container1:c1 multi-host-network container2