sql >> Databáze >  >> NoSQL >> MongoDB

mongod --bind_ip pomocí docker-compose verze 2

Konečně se mi podařilo propojit oba kontejnery. Moje zjištění zde pro účely dokumentace.

Hlavní body

  • docker-compose verze 2 vytvoří bridge síť a přidá do ní všechny kontejnery.
  • mongod nezná tuto síť, a proto se k této ip neváže. Ve výchozím nastavení se váže pouze na 127.0.0.1
  • mongoimport nemohl navázat připojení pomocí názvu kontejneru, i když se předpokládá, že bude přeložen do ip kontejneru.

Řešení

  • Přidělte statickou IP pro mongodb prostřednictvím explicitní definice network
  • Spusťte mongo kontejner pomocí --bind_ip vlajka ukazující na tuto statickou ip
  • Použít ip adresu místo názvu hostitele s 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. Způsobí nastavení slave-read-only no ne, způsobí, že slave potvrdí každé vyhledávání hash s hlavním?

  2. Databáze grafů vs. databáze dokumentů vs. Triplestores

  3. Určení nejlepší architektury pro nasazení klastru MongoDB

  4. Chyba nesvázaného prvku integrace JHipster Redis