当前位置: 首页 > 知识库问答 >
问题:

Docker容器未连接mongodb主机

明利
2023-03-14

我正面临来自docker容器的MongoDB连接问题,我读了一些stackoverflow的答案,但没有帮助我解决我的问题。

我的application.yml文件有以下内容,

spring:
   application:
    name: web-ui-service
   data:
     mongodb:
       uri: mongodb://<username>:<pwd>@172.17.0.1:27017/database

我的docker-compose文件有以下内容,

版本:'3.5'服务:

sp-app-web-ui:
  container_name: sp-app-web-ui
  image: swimming-pool/web-ui-service
    environment:
    - DOCKER_HOST_IP=mongodb://172.17.0.1:27017
     - SPRING_DATA_MONGODB_DATABASE=swimming-pool
   ports:
     - 8080:8080
   networks:
     - swimming-pool-app
       restart: unless-stopped

     networks:
       swimming-pool-app:
     default:
       driver: bridge

sp-app-web-ui com.mongodb.mongosocketopenexception:异常打开socket sp-app-web-ui at com.mongodb.Connection.socketstream.open(Socketstream.java:63)~[mongodb-driver-core-3.4.2.jar!/:na]sp-app-web-ui at core-3.4.2.jar!/:na]java.lang.thread.run(thread.java:745)sp-app-web-ui[na:1.8.0_111]sp-app-web-ui由:java.net.connectexception:Connection拒绝(Connection拒绝)sp-app-web-ui在java.net.plainsocketimpl.socketconnect(本机方法)~[na:1.8.0_111]sp-app-web-ui在java.net.abstractplainsocketimpl.docketconnect(:206)~[NA:1.8.0_111]sp-app-web-ui at java.net.abstractplainsockeTimpl.connect(abstractplainsockeTimpl.java:188)~[NA:1.8.0_111]sp-app-web-ui at java.net.sockssockeTimpl.connect(SockssockeTimpl.java:392)~[NA:1.8.0_111]sp-app-web-ui at java.net.socket.connect(Socket.java:589)~[NA:1.8.0_111]sp-app-web-ui at db.connection.socketstream.open(Socketstream.java:58)~[mongodb-driver-core-3.4.2.jar!/:na]

我用的是Debian和Docker18.06。如果你有人帮我就太好了。提前感谢!

共有1个答案

谢灵均
2023-03-14

我已经解决了这个问题,我的docker-compose文件如下所示,

version: '3.5'

services:

  sp-app-web-ui:
  container_name: sp-app-web-ui
  image: swimming-pool/web-ui-service
  environment:
    - SPRING_PROFILES_ACTIVE=dev
  ports:
    - 8080:8080
  network_mode: host

并在mongo.conf文件的bindIp变量中添加“127.0.0.1”。

我的application.yml有以下内容,

spring:
   application:
    name: web-ui-service
    data:
     mongodb:
       uri: mongodb://<username>:<pwd>@172.0.0.1:27017/database

这个IP127.0.0.1是在Linux上ping IP a时从docker0获得的。

 类似资料:
  • 问题内容: 所以我想连接到我在主机上运行的mongodb(DO Drop,Ubuntu 16.04)。它在localhost 的默认端口上运行。 然后,我使用mup将我的Meteor应用程序部署在我的DO Drop上,该DO Drop使用docker在容器内运行Meteor应用程序。到目前为止,一切都很好。使用标准连接URL将应用程序连接到mongodb。现在我有以下问题: 显然不能在docker

  • 我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?

  • 问题内容: 我正在使用docker- compose 运行一个应用程序。一切正常,通过连接到容器内的Mongo,我可以看到所有数据。但是,当我连接到RoboMongo时,我看不到任何数据。 我该如何解决这个问题? 问题答案: 您应该在Docker容器内建立到MongoDB的Robomongo SSH隧道连接。首先,您应该在docker容器中安装一个ssh服务器。 https://docs.dock

  • 问题内容: 我一直在尝试获取基本的nodeJS api以连接到mongo容器。两种服务都在docker- compose.yml文件中定义。我在这里和码头工人论坛上都读过无数类似的问题,所有这些都表明问题是您的mongo连接URI。这不是我的问题,您将在下面看到。 docker-compose.yml Docker文件 db / mongoose.js 设置mongodb连接 但是无论什么api容

  • 我一直在尝试获取一个基本的nodeJS api来连接到mongo容器。这两个服务都是在docker compose中定义的。yml文件。我在这里和docker论坛上读到了无数类似的问题,都指出问题是您的mongo连接URI。这不是我的问题,你将在下面看到。docker编写。yml公司 在此输入图像描述 Dockerfile文件 在此输入图像描述 我一直在尝试获取一个基本的nodeJS api来连接

  • 我一直在尝试获取一个基本的nodeJS api来连接到mongo容器。这两个服务都是在docker compose中定义的。yml文件。我在这里和docker论坛上读到了无数类似的问题,都指出问题是您的mongo连接URI。这不是我的问题,你将在下面看到。 docker编写。yml公司 文档文件 db/猫鼬。js设置mongodb连接 但无论api容器无法连接什么。我尝试将mongo uri设置为