泊坞窗容器不连接主机的mongodb

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

我是从码头工人容器面向MongoDB的连接问题,我读了几计算器答案,但没有帮助我解决我的问题。

我application.yml文件具有以下,

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

和我的搬运工,撰写文件具有以下,

版本: '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

我看了这个博客From inside of a Docker container, how do I connect to the localhost of the machine?

但还是现在面临以下问题,

SP-APP-Web的用户界面| com.mongodb.MongoSocketOpenException:异常的插孔SP-APP-Web的用户界面|在com.mongodb.connection.SocketStream.open(SocketStream.java:63)〜[MongoDB的驱动核心 - 3.4.2.jar /:NA] SP-APP-Web的用户界面|在com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)〜[MongoDB的驱动核心 - 3.4.2.jar /:NA] SP-APP-Web的用户界面|在com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable.run(DefaultServerMonitor.java:113)〜[MongoDB的驱动核心 - 3.4.2.jar /:NA] SP-APP-Web的用户界面|在java.lang.Thread.run(Thread.java:745)[NA:1.8.0_111] SP-APP-web的用户界面| java.net.ConnectException:通过导致连接拒绝(连接被拒绝)SP-APP-Web的用户界面|在java.net.PlainSocketImpl.socketConnect(本机方法)〜[NA:1.8.0_111] SP-APP-Web的用户界面|在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)〜[NA:1.8.0_111] SP-APP-web的用户界面|在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)〜[NA:1.8.0_111] SP-APP-web的用户界面|在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)〜[NA:1.8.0_111] SP-APP-web的用户界面|在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)〜[NA:1.8.0_111] SP-APP-web的用户界面|在java.net.Socket.connect(Socket.java:589)〜[NA:1.8.0_111] SP-APP-web的用户界面|在com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57)〜[MongoDB的驱动核心 - 3.4.2.jar /:NA] SP-APP-Web的用户界面|在com.mongodb.connection.SocketStream.open(SocketStream.java:58)〜[mongodb的驱动器核心-3.4.2.jar /:NA]

我使用Debian和泊坞18.06。这将是巨大的,如果你有人帮助我。提前致谢!

mongodb docker docker-compose dockerfile docker-networking
2个回答
1
投票

我已经解决了这个问题,我的搬运工,撰写文件看起来如下,

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

这个IP 127.0.0.1从docker0得到它在Linux上,当你的ping IP一个。


0
投票

你可能会寻找是network_mode: "host"添加到您的码头工人撰写的服务:

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

   # https://docs.docker.com/compose/compose-file/#network_mode
   network_mode: "host"

你可以阅读更多有关docs

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