/ / Daemon.json में होस्ट कॉन्फ़िगर करने के बाद डॉकर शुरू करने में असमर्थ - डॉकर, सेवा, कॉन्फ़िगरेशन, ubuntu-16.04

Daemon.json में होस्ट कॉन्फ़िगर करने के बाद डॉकर शुरू करने में असमर्थ - डॉकर, सेवा, कॉन्फ़िगरेशन, ubuntu-16.04

मैं विन्यास फाइल का उपयोग कर उबंटू 16.04 में डॉकर (संस्करण 17.03.1-सीई) को कॉन्फ़िगर करने की कोशिश कर रहा हूं /etc/docker/daemon.json एक मेजबान जोड़ने के लिए:

{
"debug": true,
"hosts": ["tcp://0.0.0.0:1234", "unix:///var/run/docker.sock"],
"dns"  : ["8.8.8.8","8.8.4.4"]
}

जब मैं डॉकर को पुनरारंभ करने का प्रयास करता हूं .. यह विफल रहता है

#service docker restart
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

देख रहे हैं systemctl स्थिति docker.service:

Starting Docker Application Container Engine...
docker-slave-ubuntu-build dockerd[24806]: unable to configure the Docker daemon with file /etc/docker/daemon.json:
the following directives are specified both as a flag and in the configuration file:
hosts: (from flag: [fd://], from file: [tcp://0.0.0.0:4243 unix:///var/run/docker.sock])

जहां मैं निर्दिष्ट ध्वज को हटा सकता हूं? मुझे रखरखाव की स्क्रिप्ट को संशोधित करना है?

उत्तर:

उत्तर № 1 के लिए 7

Systemd के लिए, मेरी पसंदीदा विधि एक साधारण ओवरराइड फ़ाइल को तैनात करना है (आपको पहले निर्देशिका बनाना होगा):

$ cat /etc/systemd/system/docker.service.d/override.conf
# Disable flags to dockerd, all settings are done in /etc/docker/daemon.json
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd

यह हटा देता है -H ... किसी भी अन्य के साथ dockerd से डिफ़ॉल्ट ध्वजविकल्प और आपको demoner को daemon.json फ़ाइल से प्रबंधित करने देता है। यह डॉकर को अपनी स्टार्टअप स्क्रिप्ट में परिवर्तन करने की अनुमति देता है जब तक कि वे एक्ज़ेस्टार्ट को संशोधित नहीं करते हैं और आप docker.service की अपनी प्रति को बनाए रखे बिना उन परिवर्तनों को प्राप्त करना जारी रखेंगे।

इस फ़ाइल को बनाने के बाद, चलाएं systemctl daemon-reload; systemctl restart docker.


उत्तर № 2 के लिए 1

ऐसा लगता है कि यह एक कमांड लाइन और कॉन्फ़िगरेशन फ़ाइल दोनों से विन्यास विलय कॉन्फ़िगरेशन है। डिफ़ॉल्ट systemd इकाई फ़ाइल निर्दिष्ट है -H fd:// और यह आपके साथ संघर्ष करता है tcp://0.0.0.0:1234 तथा unix:///var/run/docker.sock.

इस विषय पर कई गिटहब मुद्दे हैं:

वे इस बग पर विचार नहीं करते हैं। लेकिन यह निश्चित रूप से एक परेशानी है। एक वर्कअराउंड डिफ़ॉल्ट इकाई फ़ाइल की प्रतिलिपि बनाना और निकालना है -H fd:// इसमें से:

$ sudo cp /lib/systemd/system/docker.service /etc/systemd/system/
$ sudo sed -i "s/ -H fd:////g" /etc/systemd/system/docker.service
$ sudo systemctl daemon-reload
$ sudo service docker restart