डॉकर त्रुटि: क्लाइंट और सर्वर का एक ही संस्करण नहीं है


84

चूँकि मैंने अभी-अभी 1.1.0 को डॉकटर अद्यतन किया है:

डेमन से त्रुटि प्रतिक्रिया: क्लाइंट और सर्वर का एक ही संस्करण नहीं है (क्लाइंट: 1.13, सर्वर: 1.12)

क्या आप जानते हैं कि इसे कैसे ठीक किया जाए?

मैंने 1.0.1 पर वापस स्विच किया और सब कुछ फिर से काम करता है।


मैं एक ही समस्या है, का उपयोग कर boot2docker। क्या यह भी आपका मामला है?
सिग्मस

2
हाँ, मैं boot2docker का भी उपयोग कर रहा हूँ। डॉक को अनइंस्टॉल करने के बाद और इसे फिर से इंस्टॉल करें ('पुनः स्थापित नहीं') फिर से काम कर रहा है। शराब की
भठ्ठी

4
हो सकता है कि आपको यह स्पष्ट करने के लिए शीर्षक / प्रश्न को संपादित करना चाहिए कि यह एक boot2dockerमुद्दा है (भविष्य के संदर्भ के लिए)।
सिग्मस

बेशर्म प्लग: एक दोस्त और मैंने शॉर्ट टर्म में इसके साथ मदद करने के लिए डॉकर वर्जन मैनेजर नामक टूल को एक साथ रखा ।
काइल केली

जवाबों:


127

ऐसा लगता है कि आपको boot2docker स्थापित करने के बाद VM को अपग्रेड करने की आवश्यकता है:

अगर आप boot2docker से 0.12 या बाद में अपग्रेड कर रहे हैं, तो आप boot2docker stop && boot2docker डाउनलोड && boot2docker अप का उपयोग करके अपनी मौजूदा वर्चुअल मशीन (इंस्टॉलर का उपयोग करने के बाद अपग्रेड कर सकते हैं) को अपडेट कर सकते हैं - और आप अपना मौजूदा डेटा नहीं खोएंगे।

( https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0.0 )


3
भी शराब की
भठ्ठी की

5
अब आपको docker कमांड लाइन टूल के काढ़ा संस्करण का उपयोग करने की आवश्यकता नहीं है। Boot2Docker सही संस्करण प्रदान करता है।
हाबिल मुआनो

होने An error occurred trying to connect: Get https://192.168.59.103:2376/v1.19/containers/json?all=1: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103: /
ऐन तोहरेरी

1
मैं इस सर्टिफिकेट इश्यू में भाग गया। मैं भागा boot2docker delete, फिर boot2docker initयह काम करने लगा।
डीन वाम्लर

1
एक मित्र और मैंने शॉर्ट टर्म में इसके साथ मदद करने के लिए डॉकर वर्जन मैनेजर नामक एक टूल डाला ।
काइल केली

19

यदि आपने डॉकर को अपडेट किया है तो यह हो सकता है, लेकिन सेवा को फिर से शुरू नहीं किया गया है। फिर आप अपडेट किए गए क्लाइंट के साथ डॉकर डेमन से जुड़ने की कोशिश करेंगे, जबकि डेमन (जो अपडेट से पहले ही चल रहा था) अभी भी पुराने संस्करण को चला रहा है।

इसे ठीक करने के लिए, सेवा को पुनरारंभ करें:

sysV init:

service docker restart

systemd:

systemctl daemon-reload

systemctl restart docker


1
के लिए systemdयह करने के लिए सिफारिश की है systemctl daemon-reloadसे पहलेsystemctl restart docker
baldrs

लगता है जैसे सरल उत्तर को श्रेष्ठ उत्तर :) है
Dariss

13

यदि आप docker-machineएक स्थानीय वर्चुअलबॉक्स-आधारित मशीनों का प्रबंधन करने के लिए उपयोग करते हैं, तो बूटबोडकर के लिए समाधान उतना ही सरल है:

docker-machine upgrade MACHINE_NAME

यह docker-machineनवीनतम को डाउनलोड करने boot2docker.isoऔर उन्नत VM में एक नई रूट फाइलसिस्टम के रूप में रखने के लिए कहता है ।

वैसे, वर्चुअलबॉक्स-समर्थित डॉकटर मशीन में इसकी रूट फाइल सिस्टम आसानी से है। इसका मतलब यह है कि किसी भी मैनुअल अपडेट के लिए मशीन रिबूट बच जाना संभव नहीं है। मेरे लिए यह एक आश्चर्य की बात थी।


12

मेरे पास boot2docker, docker और virtual box का नवीनतम संस्करण था लेकिन फिर भी यह संदेश प्राप्त कर रहा था। ऐसा लगता है कि दौड़ना brew upgrade boot2dockerसबसे अच्छा विचार नहीं है। दौड़ते समयboot2docker upgrade , मुझे पर्यावरण चर का एक समूह स्थापित करने के लिए कहा गया और फिर इसने मेरे लिए काम किया।

Boot2docker ने मुझे ये सेट करने के लिए कहा (अंतिम पंक्तियाँ देखें):

$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
    to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

आपके टर्मिनल में एक ही बार में उन तीन लाइनों को काटना और पेस्ट करना संभव है।

जाँच करने के लिए वे सही हैं:

$ env

11

मैं एक अधिक हाल के ग्राहक के साथ डॉकर सर्वर को क्वेरी करने की कोशिश कर रहा था:

  • सर्वर एपीआई संस्करण: 1.21
  • क्लाइंट एपीआई संस्करण 1.22

मेरे लिए समाधान सिर्फ:

export DOCKER_API_VERSION=1.21

संदर्भ: https://docs.docker.com/engine/reference/commandline/cli/


1
धन्यवाद! इसने मेरी समस्या को ठीक किया
माजिक

1
तथ्य यह है कि डॉक प्रोटोकॉल का संस्करण है और पिछड़े संगत को अच्छी तरह से प्रलेखित नहीं किया जाना चाहिए, या पर्याप्त रूप से दिखाई दे सकता है, यह देखते हुए कि विभिन्न परिदृश्यों में डॉक को अपग्रेड करने के लिए सभी प्रकार की लंबाई के उत्तर दिए जाते हैं ...
मार्सेलो रोमानी

3

यहाँ सही उत्तर बहुत पुराना है (डॉकटर ने बूट 2 डॉकटर का नाम बदलकर डोकर मशीन कर दिया है और इसमें कुछ और कार्यक्षमता जोड़ दी है)

वैसे भी मैंने उसी समस्या का सामना किया और मुझे ठीक करने में लगभग 3 दिन लगे :(

यहाँ समाधान है

1) के स्थान का पता लगाएं boot2docker.iso

sudo find ~/ -name 'boot2docker.iso'

2) boot2docker.isoइसका बैकअप लेने के बाद फाइल को डिलीट कर दें

/Users/{user}/.docker/machine/cache/boot2docker.iso

3) अपने docker vm को हटाएं

docker-machine rm {default}

यह उस एक को भी हटाना चाहिए:

/Users/{user}/.docker/machine/machines/default/boot2docker.iso

4) नया docker vm बनाएं

docker-machine create --driver virtualbox default

यह boot2docker.isoपहले एक नया डाउनलोड करेगा और फिर इसे अपना vm बनाने के लिए उपयोग करेगा।

अब इसे ठीक करना चाहिए :)

परंतु

यदि आपको यहाँ कोई त्रुटि मिलती है जैसे:

Running pre-create checks...
(mega-docker) No default Boot2Docker ISO found locally, downloading the latest release...
Error with pre-create check: "Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp: lookup api.github.com on 192.168.0.1:53: read udp 192.168.0.103:53947->192.168.0.1:53: i/o timeout"

boot2docker.isoफ़ाइल को मैन्युअल रूप से https://api.github.com/repos/boot2docker/boot2docker/releases/latest पर जाकर डाउनलोड करने का प्रयास करेंhtml_url अंत में फ़ाइल डाउनलोड करने का चयन करें।

एक बार जब आप फ़ाइल को प्राप्त करते हैं और इसे मैन्युअल रूप से अंदर रख देते हैं /Users/{user}/.docker/machine/cache/

अंत में इस कमांड को फिर से रन करें docker-machine create --driver virtualbox default


2

मेरे लिए काम करने वाली एकमात्र चीज इस प्रक्रिया को मार रही थी और इसे "sudo service docker start" के साथ शुरू करना था।


2

मेरे लिए काम करने वाली एकमात्र चीज वर्चुअलबॉक्स से बूट 2 डॉक की छवि को हटा ~/.boot2dockerरही थी और फिर पूरी तरह से फ़ोल्डर को हटा रही थी , और अंत में boot2docker initफिर से चल रही थी।


1

boot2docker हटाएं

boot2docker init

मेरे लिए काम किया। इससे पहले कि और उसके बाद बधिर को रोकें / शुरू करें।


1

इसने मेरे लिए काम किया: यह बस vm को बन्द करता है, हटाता है और इसे पुनः बनाता है और इसे फिर से शुरू करता है। यह शेल-रिटन को फिर से चलाता है ताकि आपके ईएनवी वैरिएबल सही आईपी पते के साथ सेट हो जाएं जब यह वापस आता है।

$ boot2docker poweroff && \
    boot2docker delete && \
    boot2docker init && \
    boot2docker up
$ eval `boot2docker shellinit`

0

मेरे पास boot2docker (v1.7.1) का नवीनतम संस्करण था और क्लाइंट सर्वर बेमेल त्रुटि मिली। फिर मैं बस भागा boot2docker upgradeऔर इसने समस्या को हल किया।


0

मेरा समाधान वर्चुअलबॉक्स में डॉक वीएम पर एक बंद> पावर ऑफ करना था, और फिर किटेमेटिक को पुनरारंभ करें। इसने मेरे लिए इसे ठीक कर दिया।


0

मुझे लगता है कि काढ़ा में संस्करण पुराने संस्करण की तुलना में पुराना है। इसलिए मुझे लगता है कि सबसे अच्छा तरीका वेबसाइट पर जाना है और इंस्टॉल फ़ाइल डाउनलोड करना है।


0

उत्तर:

यदि आप अन्सिबल और बूट 2docker द्वारा नहीं आए हैं, तो यहां समाधान है: docker_api_version: autoतर्क का उपयोग करें

- name: Mongo data container
  docker:
    docker_api_version: auto
    name: mongo-primary-dc
    image: debian:wheezy
    state: present
    volumes:
    - /data

मुझे लगता है कि इसका कारण यह है कि Ansible द्वारा उपयोग किया जाने वाला docker-p मॉड्यूल अक्सर उबंटू एप्ट-गेट रिपॉजिटरी के समान संस्करण में नहीं होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.