MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

mongod --bind_ip menggunakan docker-compose versi 2

Saya akhirnya bisa berhasil menghubungkan kedua wadah. Temuan saya di sini untuk tujuan dokumentasi.

Poin utama

  • docker-compose versi 2 membuat bridge jaringan dan menambahkan semua wadah ke dalamnya.
  • mongod tidak mengetahui jaringan ini dan karena itu tidak mengikat ke ip itu. Secara default, hanya mengikat ke 127.0.0.1
  • mongoimport tidak dapat membuat koneksi menggunakan nama container, meskipun seharusnya diterjemahkan ke ip container.

Solusi

  • Tetapkan IP statis untuk mongodb melalui definisi eksplisit dari network
  • Init wadah mongo dengan --bind_ip bendera menunjuk ke ip statis itu
  • Gunakan alamat ip sebagai ganti nama host dengan 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

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. 3 Cara Menyembunyikan Indeks dari Paket Kueri di MongoDB

  2. MongoDB apa pengguna dan kata sandi default?

  3. Mengamankan MongoDB dari Serangan Injeksi Eksternal

  4. Kesalahan:getaddrinfo ENOTFOUND di nodejs untuk mendapatkan panggilan

  5. mendorong objek ke dalam skema array di Mongoose