场景:我们电脑上装了mongodb,同时电脑上还有个运行着php应用的docker容器.那么容器内的php应用怎么访问宿主机上的mongodb?

  • 第一步: 让宿主机的mongodb绑定ip:0.0.0.0
    mongodb默认是绑定127.0.0.1.修改mongo配置文件(mac通过brew安装的是在/usr/local/etc/mongod.conf下,其他平台执行查找),更改bingIp指令:
    bindIp: 0.0.0.0
    修改完后,记得重启使配置生效.
  • 第二步: docker内使用host.docker.internal域名访问宿主机
    docker提供了个域名host.docker.internal可以得到宿主机ip,省去自己查找麻烦(不过docker官方也说了这个域名也仅仅是用于开发环境中,不要在生产中使用).
    在代码中访问mongodb://用户名:密码@host.docker.internal:27017即可.(27017是默认端口,但具体是啥端口看你的配置)

标签: none

添加新评论