我是Docker的新手,我正在努力配置。我目前的配置是我的本地系统上有多个使用nodemon
的Node / Express微服务。所有这些都连接到在mongodb://localhost:27017/localv2
上运行的mongodb。
我正在尝试将所有微服务都停靠。问题是他们无法在localhost:27017
上连接到mongodb。我有两个问题:
为什么他们无法连接到localhost:27017?
如何让它们连接到我系统中当前运行的mongodb?
答案 0 :(得分:1)
1& 2.当您构建一个docker容器时,它会为docker容器创建VLAN,其中IP地址网关为:172.17.42.1
,因此docker容器将连接到mongo,它应该是:mongodb://172.17.42.1:27017/localv2
答案 1 :(得分:1)
您可以尝试这样的事情:
```
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会将datatabase
解析为mongod
答案 2 :(得分:0)
第一, - 你需要找到docker container ip addres by, docker检查container_id - 该字段类似于" IPAddress":" 172.17.0.7"
第二, - 你需要在你的本地机器上启动mongod - 你需要使用mongochef(mongo浏览器) - 从mongo浏览器你需要连接mongo客户端作为 localhost:27017而不是这个使用container-ip:27017 并连接到mongodb实例