छवि निर्माण के बाद मैं डॉकर होस्ट नाम कैसे बदलूं?

मैं डॉकर 1.8 सीख रहा हूं । मैं कंटेनर का होस्टनाम बदलना चाहता था के बाद मैं उन्हें बनाता हूं । मैंने संपादित करने का प्रयास किया /etc/host कंटेनर के अंदर और मैं हर बार अधिलेखित हो गया attach फिर start छवि। मैंने निम्न फ़ाइल को संपादित करने का प्रयास किया, और होस्टनाम अधिलेखित हो गया ।

[root@localhost ~]# docker inspect high_blackwell | grep hostname"HostnamePath": "/var/lib/docker/containers/15b84f7012383b1af2d4c8c6443506cdff3b19cb1d87d3dfdcb10df126c4eec3/hostname",

[रूट@लोकलहोस्ट ~]#

इनमें से किसी भी उत्तर ने मेरे लिए काम नहीं किया

आप डॉकर कंटेनर का नाम कैसे देते हैं?

मुझे यकीन नहीं है कि आपका मतलब है कि आप एक नए कंटेनर या चल रहे कंटेनर का होस्टनाम सेट करना चाहते हैं । आप कहते हैं कि आप कंटेनर बनाने के बाद इसे करना चाहते हैं, लेकिन फिर आप यह भी कहते हैं कि आप "छवि शुरू कर रहे हैं" । यदि आप नहीं है startउस छवि को एड करें जिसे आपने अभी तक कंटेनर नहीं बनाया है-एक कंटेनर वह है जो आपको तब मिलता है जब आप एक छवि शुरू करते हैं ।

आप एक नया कंटेनर बना रहे हैं

आप कमांड लाइन पर होस्टनाम सेट कर सकते हैं:

docker run --rm -h "example.com" -t -i ubuntu bash# ...root@example:/# hostnameexample.com

आपका कंटेनर पहले से ही चल रहा है

यह अधिक कठिन है । आप पर नजर रखना चाहेंगे यह डॉकर मुद्दा लेकिन जब तक यह हल नहीं हो जाता तब तक आप संपादित करने से ज्यादा कुछ नहीं कर सकते /etc/hosts मुझे लगता है । द hostname कमांड काम नहीं करेगा ।

चल रहे कंटेनर के होस्टनाम को बदलने के लिए, आप "एनसेंटर" कमांड का उपयोग कर सकते हैं । हालांकि, आपको मेजबान पर रूट होना होगा ।

हम "एलएसएन" कमांड के साथ होस्ट पर नामस्थानों को सूचीबद्ध कर सकते हैं:

# lsns        NS TYPE  NPROCS   PID USER COMMAND4026531836 pid       73     1 root init      4026531837 user     101     1 root init      4026531838 uts       73     1 root init      4026531839 ipc       73     1 root init      4026531840 mnt       72     1 root init      4026531857 mnt        1    14 root kdevtmpfs4026531957 net       73     1 root init      4026532300 mnt       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c4026532301 uts       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c4026532302 ipc       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c4026532303 pid       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c4026532305 net       28  1785 root /usr/bin/python /usr/local/bin/supervisord -c

पीआईडी 1785 वाले मेरे डॉकर कंटेनर हैं । होस्टनाम को संभालने वाला नामस्थान प्रकार "यूटीएस" है, तो चलिए उस नामस्थान में होस्टनाम चलाते हैं:

# nsenter --target 1785 --uts hostname foo

अब आपके कंटेनर में "होस्टनाम" को "फू"प्राप्त करना चाहिए!

1.कंटेनर और सेवा बंद करो

sudo docker stop CONTAINER_NAMEsudo service docker stop

2.कॉन्फ़िगरेशन फ़ाइल संपादित करें (जेसन) [आपको हमेशा पहले बैकअप बनाना चाहिए]

    /var/lib/docker/containers/CONTAINER_ID/config.jsonReplace    "Hostname":"WHATEVER"with    "Hostname":"NEW_HOSTNAME"

3.कंटेनर और सेवा शुरू करें

sudo service docker startsudo docker start CONTAINER_NAME