MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mongod --bind_ip przy użyciu docker-compose w wersji 2

W końcu udało mi się połączyć oba kontenery. Moje odkrycia tutaj w celach dokumentacyjnych.

Główne punkty

  • docker-compose wersja 2 tworzy bridge sieci i dodaje do niej wszystkie kontenery.
  • mongod nie jest świadomy tej sieci i dlatego nie łączy się z tym adresem IP. Domyślnie wiąże się tylko z 127.0.0.1
  • mongoimport nie mógł nawiązać połączenia przy użyciu nazwy kontenera, mimo że ma być przetłumaczone na adres IP kontenera.

Rozwiązanie

  • Przypisz statyczny adres IP do mongodb poprzez jawną definicję network
  • Zainicjuj kontener mongo za pomocą --bind_ip flaga wskazująca na ten statyczny adres IP
  • Użyj adresu IP zamiast nazwy hosta z mongoimport

docker-compose.yml

Wersja
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. Sortuj Mongo na podstawie obliczonego warunku

  2. Zapowiedź ClusterControl 1.7.1:wsparcie dla PostgreSQL 11 i MongoDB 4.0, ulepszone monitorowanie

  3. Uwierzytelnianie mongo w wierszu poleceń nie powiodło się

  4. Monitorowanie instancji MongoDB za pomocą usługi monitorowania MongoDB (MMS)

  5. MongoDB SSL z samopodpisanymi certyfikatami w C#