MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

डॉकर मोंगो डेटा वॉल्यूम कैसे सेट करें

यह देखने के लिए कि कंटेनर के रुकने पर क्या हो रहा था और "मौजूद" मोड में जाने के लिए डॉकर लॉग की कोशिश करें और जांचें।

यह भी देखें कि क्या वॉल्यूम के लिए पूर्ण पथ निर्दिष्ट करने से मदद मिलेगी:

docker run -p 27017:27017 -v /home/<user>/data:/data/db  ...

ओपी जोड़ता है:

docker logs mongo 
exception in initAndListen: 98 
Unable to create/open lock file: /data/db/mongod.lock 
errno:13 Permission denied 
Is a mongod instance already running?
terminating 2016-02-15T06:19:17.638+0000 
I CONTROL [initandlisten] dbexit: rc: 100 

एक त्रुटि:13 वह मुद्दा है जो 30 के बारे में है।

यह टिप्पणी जोड़ता है:

<ब्लॉकक्वॉट>

यह एक फ़ाइल स्वामित्व/अनुमति समस्या है (इस डॉकर छवि से संबंधित नहीं), या तो वीबी के साथ boot2docker या वीबी के साथ एक योनि बॉक्स का उपयोग कर रहा है।

फिर भी, मैं स्वामित्व को हैक करने में कामयाब रहा, boot2docker के अंदर /उपयोगकर्ता साझा किए गए वॉल्यूम को uid 999 और gid 999 (जो कि mongo docker छवि का उपयोग करता है) और इसे शुरू करने के लिए मिला:

$ boot2docker ssh
$ sudo umount /Users
$ sudo mount -t vboxsf -o uid=999,gid=999 Users /Users

लेकिन... फाइल सिस्टम प्रकार समर्थित नहीं होने के कारण मोंगॉड क्रैश (mmap vboxsf पर काम नहीं कर रहा है)

तो वास्तविक समाधान एक DVC:डेटा वॉल्यूम कंटेनर का प्रयास करना होगा , क्योंकि अभी मोंगोडब दस्तावेज़ में उल्लेख है:

<ब्लॉकक्वॉट>

MongoDB को एक फाइल सिस्टम की आवश्यकता होती है जो fsync() . का समर्थन करता हो निर्देशिकाओं पर।
उदाहरण के लिए, एचजीएफएस और वर्चुअल बॉक्स के साझा फ़ोल्डर इस ऑपरेशन का समर्थन नहीं करते हैं।

तो:

<ब्लॉकक्वॉट>

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

DVC (डेटा वॉल्यूम कंटेनर) के लिए, docker volume create आज़माएं :

docker volume create mongodbdata

फिर इसे इस तरह इस्तेमाल करें:

docker run -p 27017:27017 -v mongodbdata:/data/db  ...    

और देखें कि क्या यह बेहतर काम करता है।

जैसा कि मैंने टिप्पणियों में उल्लेख किया है:

एक docker volume inspect mongodbdata (देखें docker volume inspect ) आपको अपना रास्ता देगा (कि आप जरूरत पड़ने पर बैकअप ले सकते हैं)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js/Express और Mongoose का उपयोग करके MongoDB में एक छवि संग्रहीत करें

  2. MongoDB प्रारंभ करने में असमर्थ। त्रुटि:Addr पहले से उपयोग में है

  3. मौजूदा संग्रह में नया सत्यापनकर्ता जोड़ें

  4. MongoDb - प्रकार को इंट से डबल में बदलें

  5. मोंगोडब के कुल के अंदर कॉल फ़ंक्शन?