我在docker中运行nodejs应用程序。在该应用程序中,我正在尝试连接我的系统数据库。但它无法正常工作
在我的环境文件中:
**MONGODB_URI=mongodb://192.168.1.174:27017/sampleDB**
SESSION_SECRET=sample
App_PORT = 8088
但是我收到错误而无法访问数据库。
我的应用程序在docker machine上运行ip 192.168.99.100:8088
答案 0 :(得分:0)
IP取决于容器的运行方式。如果使用docker-compose
,它会为您创建一个网络,在该网络中,使用服务名称可以访问容器(例如,db
,如果您使用它)。如果没有,并且您没有指定任何网络,则使用默认的bridge
网络(在docker机器上称为docker0
)。
由于您正在单独运行容器(使用docker run
),您必须为容器提供特定的IP地址(您可以使用docker exec container_name ip a
从容器内部获取一个)或通过网关(你的码头机)。但是,为了做到这一点,必须公开数据库端口(例如,27017:27017
运行时。)
我建议你从现在开始使用docker-compose
,运行一堆链接容器时,很多事情会变得更容易。