You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用docker-compose部署时Spring Boot应用无法连接MongoDB容器求助

问题排查与修复方案

核心错误原因

你的配置存在端口不匹配问题:MongoDB官方镜像默认监听端口为27017,你既没有修改MongoDB容器内的监听端口,又配置应用连接27011端口,同时端口映射也指向了容器内不存在的监听端口,最终导致连接被拒绝。

具体修复步骤

  • 修正docker-compose.yml中MongoDB服务的端口配置
    将mongodb服务下的ports字段替换为如下内容,实现宿主机27011端口映射到容器内部MongoDB默认监听的27017端口,兼容你本地非容器化服务的连接习惯:
ports:
  - 27011:27017
  • 修正application.properties中的MongoDB连接端口
    同Docker网络内的服务通信直接使用容器内部端口,无需走宿主机映射端口,修改端口配置为:
spring.data.mongodb.port=27017
  • (可选)修复服务端口映射问题
    从你提供的启动日志可见,Spring Boot内置Tomcat默认监听8080端口,当前docker-compose中配置的8091:8091端口映射无法正常生效,修改为:
ports:
  - 8091:8080
  • (可选)优化启动顺序避免偶发连接失败
    depends_on仅保证容器启动顺序,不会等待MongoDB初始化完成再启动应用,可添加健康检查配置规避该问题:
    在mongodb服务下新增健康检查规则:
healthcheck:
  test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
  interval: 5s
  timeout: 5s
  retries: 3

修改idv-service的depends_on配置为:

depends_on:
  mongodb:
    condition: service_healthy

内容的提问来源于stack exchange,提问作者EyupCingel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:30:03