我正在尝试连接到我的 docker mongo 数据库。我有这个 docker-compose:
version: '3.8'
services:
mongo:
image: mongo
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
container_name: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
ME_CONFIG_BASICAUTH: false
这些是我的财产:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=pass
spring.data.mongodb.repositories.enabled=true
我不断收到此错误:异常打开套接字连接被拒绝:没有更多信息。
我尝试过 @EnableAutoConfiguration(exclude={MongoAutoConfiguration.class}) 这不会引发错误。我也尝试了mongo的不同配置,但我不明白为什么mongo无法连接。
为了能够从主机访问数据库容器,您需要将其端口映射到主机端口。
Mongo 正在监听端口 27017,如果您想将其映射到主机上的端口 27017,您可以在服务定义中添加一个
ports
部分,如下所示
services:
mongo:
image: mongo
container_name: mongodb
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
然后您应该能够从主机访问它。