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

डॉकर कंपोज़ में एक बार कमांड कैसे चलाएं

मैं आपके कंटेनर में एक एंट्रीपॉइंट-स्क्रिप्ट जोड़ने का सुझाव देता हूं; इस एंट्रीपॉइंट-स्क्रिप्ट में, आप जांच सकते हैं कि क्या डेटाबेस को इनिशियलाइज़ किया गया है, और यदि ऐसा नहीं है, तो आवश्यक चरणों का पालन करें।

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

एक उदाहरण के रूप में, आधिकारिक वर्डप्रेस छवि पर एक नज़र डालें, जो इसकी एंट्रीपॉइंट-स्क्रिप्ट में डेटाबेस का एक बार आरंभीकरण करता है। स्क्रिप्ट डेटाबेस से कनेक्ट करने का प्रयास करती है (और यदि डेटाबेस से संपर्क नहीं किया जा सकता (अभी तक) फिर से प्रयास करता है), और जांचता है कि आरंभीकरण की आवश्यकता है या नहीं; https://github.com /docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-entrypoint.sh#L146-L171

नोट

मैंने देखा है कि आपने अपना वॉल्यूम संलग्न करने के लिए "केवल-डेटा कंटेनर" बनाया है। docker 1.9 के बाद से, docker के पास वॉल्यूम प्रबंधन है, जिसमें वॉल्यूम का नामकरण भी शामिल है। इस वजह से, अब आपको "केवल-डेटा" कंटेनरों का उपयोग करने की आवश्यकता नहीं है।

आप अपनी कंपोज़ फ़ाइल से डेटा-ओनली कंटेनर को हटा सकते हैं, और कुछ इस तरह दिखने के लिए अपनी मोंगो सेवा को बदल सकते हैं;

  mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth

इसे mongodata . नाम से एक नया वॉल्यूम बनाना चाहिए यदि यह मौजूद नहीं है, या उस नाम के साथ मौजूदा वॉल्यूम का पुन:उपयोग करें। आप docker volume ls . का उपयोग करके सभी संस्करणों को सूचीबद्ध कर सकते हैं और docker volume rm <some-volume> . के साथ एक वॉल्यूम निकालें अगर अब आपको इसकी आवश्यकता नहीं है



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो + यात्री:रेल के भीतर से डेटाबेस से पुन:कनेक्ट करने का सही तरीका? इष्टतम मोंगो प्रदर्शन कैसे सुनिश्चित करें?

  2. mongoDB में दिनांक खोज रहे हैं और समय की अनदेखी कर रहे हैं

  3. नेवला संदर्भित दस्तावेज़ की टीटीएल समाप्ति

  4. वसंत एमवीसी बाकी प्रतिक्रिया जेसन और एक्सएमएल

  5. $elemMatch . के लिए MongoDB अनुक्रमणिका