首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >com.mongodb.MongoSocketOpenException:打开套接字时出现异常

com.mongodb.MongoSocketOpenException:打开套接字时出现异常
EN

Stack Overflow用户
提问于 2020-09-19 03:26:49
回答 3查看 1.3K关注 0票数 1

你能帮我在ubuntu服务器上部署应用程序吗?I .I docker-compose up.I .我有这个错误。

代码语言:javascript
复制
com.mongodb.MongoSocketOpenException: Exception opening socket
spring-mongo    |       at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
spring-mongo    | Caused by: java.net.ConnectException: Connection refused (Connection refused)
spring-mongo    |       at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_212]
spring-mongo    |       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_212]
spring-mongo    |       at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_212]
spring-mongo    |       at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:63) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       ... 3 common frames omitted

Dokerfile

代码语言:javascript
复制
FROM openjdk:8-jdk-alpine
ADD target/spring-mongo.jar spring-mongo.jar
ENTRYPOINT ["java","-jar","spring-mongo.jar"]

application.properties

代码语言:javascript
复制
spring.data.mongodb.host=mymongodb
spring.data.mongodb.port=27017
spring.data.mongodb.database=mongo
spring.data.mongodb.repositories.enabled=true

docer-compose.yml

代码语言:javascript
复制
version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    ports:
      - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    ports:
      - 8080:8080
    links:
      - mymongodb
EN

回答 3

Stack Overflow用户

发布于 2020-09-19 03:53:10

在您的docker-compose.yml,中,您只需将spring boot应用程序与mongodb链接起来。

在您的application.properties,中,您正在使用mongodb,它不是一个有效的主机。

您需要传递spring应用程序的环境变量。为此,您可以在docker-compose.yml.中执行以下操作

代码语言:javascript
复制
version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    ports:
      - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    ports:
      - 8080:8080
    environment:
      - MONGO_HOST=mymongodb
    links:
      - mymongodb

在你的application.properties,中

spring.data.mongodb.host=${MONGO_HOST}

票数 0
EN

Stack Overflow用户

发布于 2020-10-29 14:59:31

试试depends_on,而不是links,它对我很有效。

代码语言:javascript
复制
version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    network_mode: host
    restart: always
    ports:
     - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    network_mode: host
    restart: always
    ports:
     - 8080:8080
    depends_on:
     - mymongodb
票数 0
EN

Stack Overflow用户

发布于 2021-08-17 14:39:18

使用下面的docker-compose.yml和application.properties配置,它可以为我工作。docker-compose.yml docker-compose.yml

代码语言:javascript
复制
# Use root/example as user/password credentials
version: '3.1'

services:

  mongo:
    image: mongo:4.4.5
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: 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/

application.properties

代码语言:javascript
复制
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=example
spring.data.mongodb.database=springAppDB
spring.data.mongodb.port=27017
spring.data.mongodb.host=localhost
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63961721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档