MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

mongod --bind_ip bằng cách sử dụng docker-compo phiên bản 2

Cuối cùng tôi có thể quản lý để kết nối cả hai vùng chứa. Phát hiện của tôi ở đây cho mục đích tài liệu.

Những điểm chính

  • docker-compose phiên bản 2 tạo ra một bridge mạng và thêm tất cả các vùng chứa vào đó.
  • mongod không biết về mạng này và do đó không liên kết với ip đó. Theo mặc định, chỉ liên kết với 127.0.0.1
  • mongoimport không thể thiết lập kết nối bằng cách sử dụng tên vùng chứa, mặc dù nó phải được dịch sang ip vùng chứa.

Giải pháp

  • Gán một IP tĩnh cho mongodb thông qua định nghĩa rõ ràng về mạng network
  • Init vùng chứa mongo với --bind_ip cờ trỏ đến ip tĩnh đó
  • Sử dụng địa chỉ ip thay vì tên máy chủ với mongoimport

docker -omp.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

mongo-seed / Dockerfile

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. Xuất mô-đun cơ sở dữ liệu mongoose

  2. Cập nhật thay đổi giấy phép MongoDB SSPL

  3. Truy vấn MongoDB GridFS?

  4. Dự án MongoDB $:Giữ lại các trường đường ống trước đó

  5. Chỉ mục tài liệu con trong mongo