2015-12-26 7 views
6

पर डॉकर इंस्टॉल करें मेरे पास ओपनवीजेड वीपीएस है, ऑपरेटिंग सिस्टम सेंटोस 6 है, मैं डॉकर स्थापित करने का प्रयास करता हूं, लेकिन डॉकर त्रुटि शुरू करता है।ओपनवीजेड वीपीएस

Starting cgconfig service: Error: cannot mount cpuset to /cgroup/cpuset: Invalid argument 
/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup mounting failed 
Failed to parse /etc/cgconfig.conf or /etc/cgconfig.d  [FAILED] 
Starting docker:           [ OK ] 
+0

ऐसा लगता है कि 'cgroups' मॉड्यूल लोड नहीं होता है। शायद स्थापित नहीं है ?! हालांकि 'डॉकर' अभी भी cgroups समर्थन के बिना काम कर सकता है। 'cgroups' को स्थापित करने और सक्षम करने का प्रयास करें: 'sudo yum libcgroup' स्थापित करें और' sudo service cgconfig start'। अब आप 'cgroups' पथों तक पहुंचने में सक्षम होना चाहिए:' sudo ls -l/cgroup'। डॉकर सेवा को पुनरारंभ करें और देखें कि यह काम करता है या नहीं। – Boynux

उत्तर

17

दिसंबर 2016 को अपडेट किया गया। मैंने @ एलियन लाइफ फॉर्म उत्तर को डुप्लिकेट करने की कोशिश नहीं की लेकिन अधिक जानकारी जोड़ें।

लघु जवाब:

ज्यादातर मामलों OpenVZ होस्टिंग एक पुरानी गिरी जो डोकर के साथ असंगत है साथ OpenVZ 6 का उपयोग होगा।

डोकर केवल OpenVZ 7 के साथ समर्थित है (3.x कर्नेल पर आधारित, https://openvz.org/Docker_inside_CT_vz7 देखें) या कर्नेल संस्करण 042stab105.4 या नए के साथ OpenVZ 6 (https://openvz.org/Docker_inside_CT देखें) के साथ।

लांग जवाब: नियंत्रण समूहों और नामस्थान:

डोकर को संचालित करने के लिनक्स कर्नेल के दो सुविधाओं की आवश्यकता है। तो आपको इन सुविधाओं के साथ एक कर्नेल की जरूरत है।

ओपनवीजेड के साथ आप अपने कर्नेल को नियंत्रित नहीं करते हैं, केवल होस्टिंग कंपनी ही करता है। अधिकांश होस्टिंग कंपनियां कर्नेल को सहयोग और अद्यतन नहीं करतीं, इसलिए यदि कर्नेल असंगत हो जाता है तो आप आम तौर पर भाग्य से बाहर होते हैं।

ओपनवीजेड 7 3.10 कर्नेल पर आधारित है जो बॉक्स के बाहर डॉकर का समर्थन करता है, हालांकि मैंने अभी तक ओपनवीजेड 7 होस्टिंग नहीं देखा है - केवीएम बाजार में प्रवेश करने वाले नए कम लागत वाले प्रदाताओं के साथ सबसे लोकप्रिय वर्चुअलाइजेशन प्रतीत होता है।

ओपनवीजेड 6 पुराने प्रदाताओं में अधिक आम है, और यह 2.6 कर्नेल पर आधारित है जो आमतौर पर डॉकर के साथ असंगत है। हालांकि, ओपनवीजेड कर्नेल सामान्य 2.6 कर्नेल नहीं हैं लेकिन 3.x कर्नेल से कुछ सुविधाएं बैकपोर्ट की गई हैं। तो वास्तव में कर्नेल 042stab105.4 और बाद में आधिकारिक ओपनवीजेड विकी के अनुसार डॉकर की ज़रूरतों का समर्थन करता है (देखें @ एलियन लाइफ फॉर्म उत्तर)।

पाठ के नीचे ही OpenVZ संस्करण 6 पर लागू होता

तो uname -a गिरी 042stab105.4 या बाद में पता चलता है - आप आवश्यक विशेष फ़ाइल सिस्टम माउंट करने के लिए कुछ बदलाव के साथ डोकर उपयोग कर सकते हैं।

यदि यह पुराना है और कंपनी सहयोग करने के इच्छुक है, तो वे मेनलाइन कर्नेल स्थापित नहीं कर सकते हैं, क्योंकि यह OpenVZ के साथ असंगत है। उन्हें https://openvz.org/Download/kernel से ओपनवीजेड पैच के साथ एक विशेष कर्नेल स्थापित करना होगा। अधिमानतः नवीनतम स्थिर संस्करण (जो लेखन के समय 042stab120.11 है) लेकिन कम से कम 042stab105.4। तुलनात्मक रूप से, मैंने देखा है कि सभी OpenVZ मेजबानों में 2.6.32-042stab075.2 की तरह कुछ है, जो डॉकर के साथ न केवल असंगत है, बल्कि कमजोर है। तो आप उन्नयन में समर्थन को मजबूत करने के लिए भेद्यता तर्क का उपयोग करने का प्रयास कर सकते हैं :)

एक और स्पष्ट लेकिन हमेशा लागू समाधान ओपनवीजेड से एक अन्य वर्चुअलाइजेशन तकनीक जैसे ज़ेन या केवीएम के साथ एक होस्टिंग में जाने के लिए है। हालांकि, यह मामला हो सकता है कि मेनलाइन सेंटोस 6 कर्नेल में आवश्यक विशेषताएं नहीं हैं, इसलिए गैर-स्टॉक पैच किए गए कर्नेल के साथ चलने पर सेंटोस 6 केवल डॉकर के साथ संगत हो सकता है। तो आप CentOS 7 पर भी जाने पर विचार कर सकते हैं।

+0

स्पष्ट रूप से डॉकर 1.10 अंतिम संस्करण था जो इस 2.6.32 कर्नेल के साथ काम करता था। बाद के डॉकर रिलीज़ में एक त्रुटि प्रस्तुत होती है जैसे: आपका लिनक्स कर्नेल संस्करण 2.6.32-042stab123.2 डॉकर चलाने के लिए समर्थित नहीं है। कृपया अपने कर्नेल को 3.10.0 या नए में अपग्रेड करें। –

+0

विस्तृत उत्तर के लिए धन्यवाद! इसने मेरी बहुत मदद की। – Dmitriy

1

पुराना धागा - हालांकि, समाधान CentOS6 इलाज के रूप में अगर यह इस लिंक में एक डेबियन खरखरा थे द्वारा पाया जा सकता है: https://openvz.org/Docker_inside_CT

मूल रूप से /etc/init.d/docker में, कार्य करें:

prestart() { 
# ALF service cgconfig status > /dev/null 
# ALF 
# ALF if [[ $? != 0 ]]; then 
# ALF  service cgconfig start 
# ALF fi 
mount -t tmpfs tmpfs /sys/fs/cgroup 
mkdir /sys/fs/cgroup/freezer,devices 
mount -t cgroup cgroup /sys/fs/cgroup/freezer,devices -o freezer,devices 
mkdir /sys/fs/cgroup/cpu,cpuacct,cpuset 
mount -t cgroup cgroup /sys/fs/cgroup/cpu,cpuacct,cpuset/ -o cpu,cpuacct,cpuset 

} 
संबंधित मुद्दे