我是从码头工人容器面向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。这将是巨大的,如果你有人帮助我。提前致谢!
我已经解决了这个问题,我的搬运工,撰写文件看起来如下,
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一个。
你可能会寻找是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