【发布时间】:2019-01-29 07:47:42
【问题描述】:
我有一个使用 Mongo 的 Spring Boot 2.x 项目。我通过 Docker(在本地使用 compose)和 Kubernetes 运行它。我正在尝试将我的服务连接到 Mongo 服务器。这让我感到困惑,但对于开发,我使用的是 Mongo 的本地实例,但部署在 GCP 中我已命名为 mongo 服务。
这是我的 application.properties 文件:
#mongodb
spring.data.mongodb.uri= mongodb://mongo-serviceone:27017/serviceone
#logging
logging.level.org.springframework.data=trace
logging.level.=trace
还有我的 Docker-compose:
version: '3'
# Define the services/containers to be run
services:
service: #name of your service
build: ./ # specify the directory of the Dockerfile
ports:
- "3009:3009" #specify ports forwarding
links:
- mongo-serviceone # link this service to the database service
volumes:
- .:/usr/src/app
depends_on:
- mongo-serviceone
mongo-serviceone: # name of the service
image: mongo
volumes:
- ./data:/data/db
ports:
- "27017:27017"
当我尝试 docker-compose up 时。我收到以下错误:
mongo-serviceone_1 | 2018-08-22T13:50:33.454+0000 我的网络 [initandlisten] 等待端口 27017 service_1 上的连接 | 2018-08-22 13:50:33.526 信息 1 --- [localhost:27017] org.mongodb.driver.cluster :监控线程中的异常 连接到服务器 localhost:27017 service_1 |服务_1 | com.mongodb.MongoSocketOpenException: 异常打开套接字 service_1 |在 com.mongodb.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.6.3.jar!/:na]
运行 docker ps 显示:
692ebb72cf30 serviceone_service "java -Djava.securit…" About an hour ago Up 9 minutes 0.0.0.0:3009->3009/tcp, 8080/tcp serviceone_service_1
6cd55ae7bb77 mongo "docker-entrypoint.s…" About an hour ago Up 9 minutes 0.0.0.0:27017->27017/tcp serviceone_mongo-serviceone_1
当我尝试连接到本地 mongo 时,我认为使用名称“mongo-serviceone”
【问题讨论】:
-
启动消息在我看来就像 MongoDB 配置为侦听
localhost;它应该在0.0.0.0上收听,否则将无法在其容器外访问。我不知道适当的配置更改。
标签: docker kubernetes docker-compose