सवाल डॉकर: कंटेनर के लिए होस्टनाम सेट करें


मुझे होस्टिंग नाम को चलने वाले डॉकर कंटेनर पर सेट करने में समस्या हो रही है। मुझे होस्टनाम निर्दिष्ट करने के तरीके को समझने में भी समस्या हो रही है बाद छवि शुरू हो गई है।

मैंने डाउनलोड की गई छवि से एक कंटेनर शुरू किया:

sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss

लेकिन मैं मेजबाननाम के माध्यम से निर्दिष्ट करना भूल गया -h; मैं अब होस्टनाम निर्दिष्ट कैसे कर सकता हूं कि कंटेनर चल रहा है?


38
2018-04-20 09:54


मूल


क्या आप बस कंटेनर को रोक सकते हैं और इसे फिर से होस्टनाम की आपूर्ति शुरू कर सकते हैं? - dawud
AFAIK जो केवल तब काम करता है जब आप run एक छवि, जब आप एक कंटेनर शुरू नहीं करते हैं। - Miguel Ping
कभी-कभी आप चाहते हैं कि बैश कमांड प्रॉम्प्ट को उचित नाम से देखना है। यदि ऐसा है, तो आप PS1 मान को .bashrc में संपादित कर सकते हैं। की ओर देखें askubuntu.com/a/549150/55365 सुझावों के लिए। किसी भी पीएस 1 में आप सर्वर या सेवा के नाम से इसे अलग करने के लिए * (# से घिरा हुआ एक (रंगीन) स्ट्रिंग जोड़ सकते हैं। - SPRBRN
@dawud आप चलते समय एक नया होस्टनाम नहीं दे सकते docker restart  प्रलेखन - dangonfast


जवाब:


संपादित करें /etc/hostname एक चीज है जिसके लिए आपको कंटेनर के अंदर एसएसएच एक्सेस की आवश्यकता है। अन्यथा, आप कंटेनर को स्पिन कर सकते हैं -h विकल्प।

होस्ट और डोमेन नाम सेट करने के लिए:

$ docker run -h foo.bar.baz -i -t ubuntu bash
root@foo:/# hostname
foo
root@foo:/# hostname -d
bar.baz
root@foo:/# hostname -f
foo.bar.baz

36
2017-10-29 09:32



आप ऐसा कर सकते हैं docker exec /bin/bash एक चल रहे कंटेनर पर, स्थापित करने की कोई आवश्यकता नहीं है ssh (जो प्रशासन उद्देश्यों के लिए एक बुरा अभ्यास है)। - jjmontes
आप / etc / hosts को संपादित करना भी चाह सकते हैं कि इसे किसी पते में सही तरीके से हल किया गया हो। - dtoubelis
आप मेजबाननाम को एक चल रहे कंटेनर में बदल नहीं सकते हैं hostname(गायब क्षमता)। चल रहा है docker run -h <hostname> <image> <container-name> एक बनाता है नया दिए गए होस्टनाम के साथ कंटेनर। - dangonfast


कंटेनर को पुनरारंभ करना सबसे आसान विकल्प होगा - लेकिन आप / etc / hostname भी संपादित कर सकते हैं और वहां से जा सकते हैं।


4
2018-06-24 08:02



editting /etc/hostname पुनरारंभ करने के बाद इसका कोई प्रभाव नहीं पड़ता है, क्योंकि यह हर बार "वास्तविक" होस्टनाम के साथ ओवरराइट किया जाता है, जिसे डॉकर द्वारा प्रबंधित किया जाता है। आप दौड़ने में सक्षम नहीं हैं hostname कंटेनर पर, क्योंकि कंटेनर के पास उस ऑपरेशन के लिए कोई क्षमता नहीं है (डिफ़ॉल्ट रूप से, और आप इसे बदलना नहीं चाहते हैं) - dangonfast
और संपादन /etc/hostname और कंटेनर को पुनरारंभ नहीं करने का कोई उद्देश्य नहीं है। - dangonfast


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

sudo docker stop CONTAINER_NAME
sudo service docker stop

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

/var/lib/docker/containers/CONTAINER_ID/config.json

बदलने के

"होस्टनाम": "जो कुछ भी"

साथ में

"होस्टनाम": "NEW_HOSTNAME"

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

sudo service docker start
sudo docker start CONTAINER_NAME

(वैकल्पिक रूप से आप डॉकर भी संलग्न कर सकते हैं)

sudo docker attach CONTAINER_NAME

डॉकर्स के बारे में विवरण (यानी CONTAINER_NAME, CONTAINER_ID) चलकर प्राप्त किया जा सकता है

sudo docker ps -a

3
2018-01-26 16:38



काम नहीं करता जब भी मैं कंटेनर शुरू करता हूं, हर बार ओवरराइट हो जाता है। - Ahmed
वह अजीब है। मैंने अभी इन चरणों को दोबारा तैयार किया है और यह अभी भी काम करता है। डॉकर संस्करण 1.7.1। क्या आप वाकई फ़ाइल संपादित करने से पहले करीबी कंटेनर और सेवा करते हैं? - Tomot
डॉकर 17.04.0-सीई पर काम करता है, जब संपादन / etc / hostname नहीं था। यदि आपने अभी तक कंटेनर नहीं बनाया है, तो दूसरा उत्तर -h बेहतर है, लेकिन मेरे मामले में मैं पहले से ही कंटेनर स्थापित करने की परेशानी में गया था और मेजबाननाम सेट करने के लिए इसे फिर से बनाना नहीं चाहता था। - Una
काम नहीं करता Docker version 17.05.0-ce, build 89658be - dangonfast


यदि आप उपयोग करते हैं --net=host तो आप से होस्टनाम नहीं बदल सकते हैं -h या डॉकर के अंदर से।

देख https://github.com/docker/docker/issues/5708


3
2018-02-24 21:15





https://evolvingweb.ca/blog/changing-docker-hostnames-namespaces ऐसा करने का एक तरीका बताता है। मूल विचार का उपयोग करना है docker inspect कंटेनर के पिड को प्राप्त करने के लिए, फिर कंटेनर के uts नेमस्पेस को दर्ज करें nsenter। चल रहा है hostname उस नामस्थान के अंदर उस नामस्थान को साझा करने वाले डॉकर इंस्टेंस के लिए होस्टनाम बदल जाएगा।


0
2018-03-07 15:08



कृपया समाधान सीधे यहां जोड़ें, न कि बाहरी लिंक जो असंतुष्ट हो सकता है - Orphans


में

 /var/lib/docker/containers/CONTAINER/config.json

ढूंढें और सेट करें

"Config":{"Hostname":"utils","Domainname":"mysite.com", ...}

-3
2018-05-05 07:41



काम नहीं करता Docker version 17.05.0-ce, build 89658be। कॉन्फ़िगर ओवरराइट हो जाता है, जो कहां से जानता है। और होस्टनाम स्वयं पुनरारंभ करने के बाद नहीं बदलता है। - dangonfast