如何从Docker容器连接到localhost上的mongodb?

时间:2017-10-30 16:51:53

标签: docker

我尝试在 Windows 10 上使用 Docker-compose 启动应用,并连接到在其上运行的 MongoDB 3.4 机。 命令启动应用:docker-compose -f src/main/docker/app.yml up

我有一个从jhipster和这个docker config生成的应用程序:

version: '2'
services:
core-app:
    image: core
    environment:
        - SPRING_PROFILES_ACTIVE=prod,swagger
        - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka
        - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config
        - SPRING_DATA_MONGODB_URI=mongodb://0.0.0.0:27017
        - SPRING_DATA_MONGODB_DATABASE=core
        - JHIPSTER_SLEEP=10 # gives time for the JHipster Registry to boot before the application
jhipster-registry:
    extends:
        file: jhipster-registry.yml
        service: jhipster-registry
    environment:
        - SPRING_CLOUD_CONFIG_SERVER_NATIVE_SEARCH_LOCATIONS=file:./central-config/docker-config/

我有一个例外:

  

MongoSocketException:mongodb://0.0.0.0:27017},由{java.net.UnknownHostException:mongodb://0.0.0.0:27017

引起

如何解决这个问题? 任何其他导游都不能工作

1 个答案:

答案 0 :(得分:0)

如果您在没有经过docker / docker-compose的情况下运行Mongo,它将托管在您的localhost上。

您无法真正从主机向托管集装箱透露localhost(不建议使用network --host选项)。

我建议你在docker-compose文件中为mongodb创建一个服务,并为你的主服务创建link