使用系统mongodb的多个docker集装箱?
我对Docker非常陌生,而且我正在努力configuration。 我目前的configuration是,我的本地系统上有多个使用nodemon
Node / Express微服务。 所有这些都连接到运行在mongodb://localhost:27017/localv2
上的mongodb://localhost:27017/localv2
。
我试图dockerize我所有的微服务。 问题是他们无法连接到localhost:27017
上的mongodb localhost:27017
。 我有两个问题:
-
为什么他们不能连接到本地主机:27017?
-
如何使他们连接到我的系统中当前正在运行的mongodb?
1&2.当你build立一个docker集装箱时,它为docker集装箱创buildVLAN,IP地址网关是: 172.17.42.1
,所以docker集装箱将连接到mongo,它应该是: mongodb://172.17.42.1:27017/localv2
你可以尝试这样的事情:
“`
version: '2' services: mongod: image: khezen/mongo:3.4 volumes: - /data/mongo/mongod1:/data/db ports: - "27017:27017" network_mode: bridge restart: unless-stopped helloworld: build: ./ links: - mongod:database ports: - "80:80" network_mode: bridge restart: unless-stopped
“`
helloworld将把数据库parsing为mongod
的ip地址
首先,你需要finddocker容器的IP地址,docker检查container_id – 该字段是“IPAddress”:“172.17.0.7”
第二,你需要在你的本地机器上启动mongod,你需要使用mongochef(mongo浏览器) – 从mongo浏览器你需要连接mongo客户端作为localhost:27017,而不是使用container-ip:27017连接到mongodb实例