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

尝试将docker容器连接到mongodb时打开套接字异常

西门振
2023-03-14

我有一个连接到Mongo数据库的Spring启动应用程序。我创建了一个docker-compose文件。Spring启动应用程序有两个实例。第一个实例在8080和27017上运行,运行良好。现在第二个实例在8083和27018上运行。我可以通过Mongo GUI轻松连接到27017和27018。但是,当我为第二个实例运行docker-compose时,Spring启动会出现异常。

以下是我的docker compose文件:

第一个实例(docker compose.yml):

version: '3'
services:
  app:
    container_name: HR-BACKEND
    restart: always
    build: .
    ports:
      - "8081:8080" #VF Webservice
    links:
      - mongo
 mongo:
    container_name: MONGOHR
    image: mongo:4.0.2
    ports:
      - "27017:27017"
    volumes:
      - /data/hrdb:/data/db

第一个实例(应用程序属性)

spring.data.mongodb.uri=mongodb://mongo:27017/tsp

二审(docker-compose.yml):

version: '3'
services:
  app:
    container_name: VF-BACKEND
    restart: always
    build: .
    ports:
      - "8083:8080" #VF Webservice
    links:
      - mongovf
 mongovf:
    container_name: MONGOVF
    image: mongo:4.0.2
    ports:
      - "27018:27017"
    volumes:
      - /data/hrdb:/data/db

第二个实例(应用程序属性)

spring.data.mongodb.uri=mongodb://mongovf:27018/tsp

Docker版本:

Docker版本18.09.1,内部版本4c52b90

. 我真的找不到解决这个问题的方法。如果需要更多详细信息,请告诉我

共有1个答案

红朝
2023-03-14

在第二个实例中,您试图在错误的端口连接到mongo。应用属性应为:

<代码>Spring。数据mongodb。uri=mongodb://mongovf:27017/tsp

在docker compose上下文中,您可以直接连接到容器,而无需通过docker主机。这就是为什么您必须直接连接到容器端口,而不是尝试通过docker主机上发布的端口进行连接。

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

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

  • 作为解决Hibernate OGM连接问题的一部分,我想看看我是否从Robo 3T连接。 我构建我的MongoDB映像并开始运行。 docker ps: MacBook-Pro:GoStopHandle NOTiFY$docker ps容器ID图像 命令创建状态端口名称0375a68b9988 goStop handlemongob:最新 "docker-entrypoint. s..."5秒前上

  • 我无法将作为docker容器运行的应用程序连接到mongoDB。我知道新版本docker compose不推荐使用“链接”,所以我尝试使用自定义网络。我的码头工人。yml: 我的应用程序的Dockerfile: 当我运行时,我在应用程序中得到以下错误消息: 在第一次连接时连接到服务器[127.0.0.1:27017]失败[MongoNetworkError:连接ECONNREFUSED127.0.

  • 问题内容: 我在将作为docker容器运行的nodeJS应用程序连接到mongoDB时遇到问题。让我解释一下到目前为止我做了什么: 如您所见,已经有一个mongo docker容器正在运行。 现在我正在运行我的nodeJS应用程序docker容器(这是来自meteorJS的构建): 在这个Docker容器中,我想通过运行以下命令来运行应用程序: 现在我得到了错误 我已经尝试通过设置以下内容来设置M

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