我使用docker部署我的Spring boot Netflix微服务多项目。
我没有任何问题停靠运行我的尤里卡和配置项目。
但是,当我将另一个项目传递给eureka时,系统抛出以下错误
monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket.我知道,如果Spring boot不能通过设置为配置存储库的application.xml的spring.data.mongodb.uri的uri与Mongodb通信,那么默认情况下它会连接到本地主机。
我百分之百确定这个spring.data.mongodb.uri指向了正确的url。但是,当我运行Spring页面的/env时,我看不到spring.data.mongodb.uri。
如果我在没有docker的情况下部署eureka,config和项目,系统运行良好。
有人能解释为什么docker和非docker环境中的行为是不同的吗?
发布于 2018-10-17 17:09:32
当在docker容器中运行时(如果您在docker容器中运行所有内容),所有容器都连接到一个默认网络。例如,默认网络的子网为172.16.1.0/28。您可以使用以下命令检查每个容器使用的ip地址:
docker inspect {name-or-id-of-container}这意味着,默认情况下,端口27017在本地主机中不可用。
更新:我已经创建了一个样例项目,涉及到Eureka Server、Config Server和应用程序读取spring.data.mongodb.uri属性并打印到标准输出。
https://stackoverflow.com/questions/52850400
复制相似问题