【发布时间】:2019-02-25 04:04:25
【问题描述】:
我已将我的 Mongodb 从容器移至本地服务(容器化时它真的很不稳定)。问题是我无法从 Node api 连接到本地运行的 MongoDB 服务。我可以在我的 Mac 上运行它,但不能在 Ubuntu 上运行。我试过了:
- DB_HOST=mongodb://172.17.0.1:27017/proto?authSource=admin
- DB_HOST=mongodb://localhost:27017/proto?authSource=admin
// this works locally, but not on my Ubuntu server
- DB_HOST=mongodb://host.docker.internal:27017/proto?authSource=admin
尝试将此添加到我的 docker 文件中:
ip -4 route list match 0/0 | awk '{print $3 "host.docker.internal"}' >> /etc/hosts && \
还尝试了网桥,但无济于事。码头工人撰写示例
version: '3.3'
services:
search-api:
build: ../search-api
environment:
- PORT=3333
- DB_HOST=mongodb://host.docker.internal:27017/search?authSource=admin
- DB_USER=dbuser
- DB_PASS=password
ports:
- 3333:3333
restart: always
【问题讨论】:
-
host.docker.internal 仅适用于 Mac。不在任何 Linux 上,包括 Ubuntu。 docs.docker.com/docker-for-mac/networking/…
-
我得到了这个工作。错误是 Mongodb 未设置为侦听正确的 IP 地址。解决了这个问题,然后可以连接。
标签: docker docker-compose localhost