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

mongod --bind_ip docker-compose संस्करण 2 का उपयोग कर रहा है

मैं अंत में दोनों कंटेनरों को जोड़ने का प्रबंधन कर सका। दस्तावेज़ीकरण उद्देश्यों के लिए मेरे निष्कर्ष यहाँ हैं।

मुख्य बिंदु

  • docker-compose संस्करण 2 एक bridge बनाता है नेटवर्क और इसमें सभी कंटेनर जोड़ता है।
  • mongod इस नेटवर्क के बारे में पता नहीं है और इसलिए उस आईपी के लिए बाध्य नहीं है। डिफ़ॉल्ट रूप से, केवल 127.0.0.1 . से जुड़ता है
  • mongoimport कंटेनर नाम का उपयोग करके कनेक्शन स्थापित नहीं कर सका, भले ही इसे कंटेनर आईपी में अनुवादित किया जाना चाहिए।

समाधान

  • मोंगोडब के लिए एक network की स्पष्ट परिभाषा के माध्यम से एक स्थिर आईपी असाइन करें
  • इनिट मोंगो कंटेनर के साथ --bind_ip उस स्थिर आईपी को इंगित करने वाला ध्वज
  • होस्टनाम के बजाय mongoimport के साथ आईपी पते का उपयोग करें

docker-compose.yml

version: '2'

services:
  mongodb:
    image: mongo:3.2
    ports:
      - "27017:27017"
    networks:
      mongo_net:
        ipv4_address: 172.16.0.1
    command: mongod --bind_ip 127.0.0.1,172.16.0.1

  mongo-seed:
    build: ./mongo-seed
    networks:
      mongo_net:
    depends_on:
      - mongodb

networks:
  mongo_net:
    driver: bridge
    ipam:
      config:
      - subnet: 172.16.0.0/24
        gateway: 172.16.0.254

मोंगो-बीज/डॉकरफाइल

FROM mongo:3.2

COPY init.json /init.json
CMD mongoimport --host 172.16.0.1 --db test --collection users \
   --type json --file /init.json --jsonArray


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB गो ड्राइवर के साथ शुरुआत करना

  2. MongoDB - क्वेरी के साथ विशिष्ट अनुक्रमणिका का उपयोग नहीं करता है

  3. MongoDB में ObjectIDs के बजाय UUIDs का उपयोग करना

  4. नोड.जेएस डेटाबेस

  5. सीएमके एक्सटर्नलप्रोजेक्ट_एड का उपयोग करके मोंगो-सीएक्सएक्स-ड्राइवर का निर्माण