无法从spring连接到docker mongo db

问题描述 投票:0回答:1

我正在尝试连接到我的 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无法连接。

mongodb spring-boot docker
1个回答
0
投票

为了能够从主机访问数据库容器,您需要将其端口映射到主机端口。

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

然后您应该能够从主机访问它。

© www.soinside.com 2019 - 2024. All rights reserved.