2014-07-12 10 views
12

नहीं चला सकता है मैं अब डॉकर में नए कंटेनर नहीं बना और चला सकता हूं। लेकिन साथ ही साथ पहले बनाए गए कंटेनर चला सकते हैं।डॉकर कंटेनर के कारण डिवाइस मैपर त्रुटि

जब मैं कुछ इस तरह से करने की कोशिश:

[[email protected] ~ ] docker run --name=fpm-5.3 debian:jessie 
2014/07/12 07:34:08 Error: Error running DeviceCreate (createSnapDevice) dm_task_run failed 

से docker.log:

2014/07/12 05:57:11 POST /v1.12/containers/create?name=fpm-5.3 
[f56fcb6f] +job create(fpm-5.3) 
Error running DeviceCreate (createSnapDevice) dm_task_run failed 
[f56fcb6f] -job create(fpm-5.3) = ERR (1) 
[error] server.go:1025 Error: Error running DeviceCreate (createSnapDevice) dm_task_run failed 
[error] server.go:90 HTTP Error: statusCode=500 Error running DeviceCreate (createSnapDevice) dm_task_run failed 

dmsetup स्थिति

docker-8:1-1210426-pool: 0 209715200 thin-pool 352 2510/524288 205173/1638400 - ro discard_passdown queue_if_no_space 

लेकिन वे एक बहुत हैं डिस्क पर मुफ्त स्थान का।

dmsetup जानकारी

Name:    docker-8:1-1210426-pool 
State:    ACTIVE 
Read Ahead:  256 
Tables present: LIVE 
Open count:  1 
Event number:  1 
Major, minor:  252, 0 
Number of targets: 1 

डोकर जानकारी

Containers: 4 
Images: 65 
Storage Driver: devicemapper 
Pool Name: docker-8:1-1210426-pool 
Data file: /var/lib/docker/devicemapper/devicemapper/data 
Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata 
Data Space Used: 12823.3 Mb 
Data Space Total: 102400.0 Mb 
Metadata Space Used: 9.9 Mb 
Metadata Space Total: 2048.0 Mb 
Execution Driver: native-0.2 
Kernel Version: 3.14.4 

डोकर संस्करण

Client version: 1.0.0 
Client API version: 1.12 
Go version (client): go1.2.2 
Git commit (client): 63fe64c 
Server version: 1.0.0 
Server API version: 1.12 
Go version (server): go1.2.2 
Git commit (server): 63fe64c 

उत्तर

30

निम्नलिखित एक Fedora/RHEL प्रणाली के लिए है, इसलिए आप अगर वहाँ थे कोई त्रुटि तो साथ आगे बढ़ना डेबियन के लिए समायोजित करने के लिए ...

# systemctl stop docker.service 
# thin_check /var/lib/docker/devicemapper/devicemapper/metadata 

की आवश्यकता होगी:

# thin_check --clear-needs-check-flag /var/lib/docker/devicemapper/devicemapper/metadata 
# systemctl start docker.service 
# docker run --name=fpm-5.3 debian:jessie 
+0

धन्यवाद। इस समय के दौरान मुझे aufs पर स्विच कर दिया गया है। लेकिन चलने के बाद चीज़ सबकुछ ठीक है। और मुझे लगता है कि स्टोरेज बैकएंड्स और डॉकर डॉक्स पर इसके बारे में समस्याएं बदलने के बारे में कुछ 'संग्रहण जानकारी पृष्ठ' बनाना उपयोगी होगा। – loadaverage

+3

यह मेरे लिए काम किया। ऐसा होने का कारण क्या हो सकता है? – Banjocat

+0

ग्रेट !!!!!! धन्यवाद!! तुमने मेरा जीवन बचाओ !!!!! – redstone

5

डोकर विभाजन भरा है और डोकर जब अब रिबूट के बाद शुरू होगा, मैं इस का सामना करना पड़ा:

# thin_check /var/lib/docker/devicemapper/devicemapper/metadata 
examining superblock 
examining devices tree 
    missing devices: [0, -] 
    bad checksum in btree node 
examining mapping tree 
    thin device 72 is missing mappings [137494, 137594] 
    bad checksum in btree node 
    thin device 72 is missing mappings [137721, -] 
    bad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree node 

मैं इस प्रक्रिया के साथ मरम्मत करने में सक्षम था:

# thin_dump -r /var/lib/docker/devicemapper/devicemapper/metadata -o /tmp/metadata.xml 
# thin_restore -i /tmp/metadata.xml -o /var/lib/docker/devicemapper/devicemapper/metadata 
1

मुझे एक ही समस्या थी और इसे ठीक करने में सक्षम नहीं था। मुझे कुछ आशाजनक मिला: http://grokbase.com/t/gg/docker-user/1563fzdtm7/docker-docker-runs-out-of-space-when-trying-to-create-a-new-image 'डिफ़ॉल्ट डॉकर स्टोरेज ड्राइवर आपके छवियों के लिए 10 जीबी स्टोरेज ब्लॉक आवंटित करता है। ओवरलेफ़ पर जाएं और इसे पूरी तरह से टालें। कमांड में आपके डॉकर डिमन को शुरू करता है, बस "-s ओवरले" जोड़ें

यह मेरी समस्या को ठीक करता है।

+0

दुर्भाग्यवश आप ओवरलेएफएस https://bugzilla.redhat.com/show_bug.cgi?id=1213602 – dukeofgaming

1

मैं इस मुद्दे को डेबियन 8.2 के साथ लड़ रहा हूं। मुझे अन्य समस्याएं थीं क्योंकि मैं grsec के साथ 4.3.3 कर्नेल (डिफ़ॉल्ट 3.16) चलाता हूं।

जीआरएसईसी मुद्दों के बावजूद (& chmod अस्वीकार कर दिया गया) मैं डॉकर चलाने और कुछ छवि और कंटेनर बनाने में सक्षम था।

फिर, मैं रीबूट कर दूंगा और डॉकर केवल त्रुटि को थूक देगा। मैं thin_check भाग गया और क्या मैंने पाया यह था:

  • मेटाडाटा ठीक था (के बाद से डोकर मुझे बता कि मेरे पतली पूल एक पतली पूल नहीं है पर रहता है मैं अभी एक पतली पूल का प्रयोग नहीं करते ...)
  • डेटा दूषित हो गया था।

इसे सुधारने की कोशिश की लेकिन पतली_स्टोर दुर्घटनाओं।

मुझे एहसास हुआ कि: डॉकर डेमन ... काम कर रहा था लेकिन systemctl stop docker.service के साथ रोका नहीं जा सकता है। इसमें कहा गया है कि सेवा बंद कर दिया जाता है, लेकिन डेमॉन स्मृति में अब भी है (ps -elf | ग्रेप डोकर)

समस्या मैं/etc/default/डोकर

rm -rf /var/lib/docker 
reboot 
में DOCKER_STORAGE_OPTIONS बदलना पड़ा ठीक करने के लिए

बूट समय पर, सेवा शुरू होती है। डॉकर जानकारी

अपेक्षित जानकारी दिखाता है। एक छवि बनाया गया। रिबूट किया गया, सेवा फिर से ठीक शुरू होती है। मुझे लगता है कि मूल रूप से डोकर डेमॉन रोका नहीं जा सकता है और एक साथ यह की हत्या:

kill <pid> 

कारण डेटा फ़ाइल दूषित हो और इसलिए चेकसम मेल नहीं खाएगी।

नीचे की रेखा मिश्रण और docker.service और डॉकर डेमन से मेल नहीं खाती है। कम से कम डेबियन/उबंटू पर।

+0

के साथ आरपीएम या यम का उपयोग नहीं कर सकते हैं, मैं पुष्टि कर सकता हूं कि ** ** ** ** ** जेसी पर टेस्ट परीक्षण मामलों में डॉकर "अस्थिर" हो सकता है, लेकिन यह अभी एक व्यवस्थित और डेबियन समस्या है। लेकिन नवीनतम डॉकर और औफ्स (4.4.0-आर 1 कर्नेल) पर सब कुछ एक आकर्षण की तरह काम करता है (मुख्य रूप से अमेज़ॅन लिनक्स, डेबियन और जेनेटू पर)। तो मैं सुझाव दूंगा कि आप Aufs पर स्विच करें, यह मेरे लिए डीएम की तुलना में अधिक स्थिर है, वैसे भी आप सिर्फ एक झलक ले सकते हैं। – loadaverage

+0

दुर्भाग्यवश मैं ऑफ पर स्विच नहीं कर सकता क्योंकि मुझे जीआरएसईसी चलाने की आवश्यकता है और ऑफ्स पैच जीआरएसईसी पैच पसंद नहीं करता है। मैंने सफलतापूर्वक एक पतले पूल में स्विच किया लेकिन यह भी बदतर है क्योंकि पूल दूषित हो गया है और udev अब इसे माउंट नहीं कर सकता है। यहां तक ​​कि यदि मैं रीबूट करने से पहले कंटेनर को रोकता हूं, तो पूल अभी भी खराब हो जाता है। –

+0

तो, ऐसा लगता है कि जीआरएसईसी यहां कुछ सामान तोड़ता है। हो सकता है कि बस मशीन डालें जहां डॉकर डीएमजेड में चलता है या ऐसा कुछ? मेरे अनुभव में डॉकर कर्नेल को विशेष रूप से, पैच बनाने के लिए बहुत संवेदनशील है। – loadaverage

1

हमारे मामले में बस सेवा शुरू करने और रोकने की आवश्यकता है।

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