首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >docker容器内的Spring boot引发java.net.ConnectException:连接被拒绝(连接被拒绝)

docker容器内的Spring boot引发java.net.ConnectException:连接被拒绝(连接被拒绝)
EN

Stack Overflow用户
提问于 2018-08-28 03:59:45
回答 2查看 3K关注 0票数 0

客户机应用程序将json数据发送到本地主机:8080上的服务器,该数据被打包并作为docker映像运行。当使用Postman chrome应用程序手动发送json时,服务器运行良好。该问题与停靠的客户端有关,该客户端在尝试使用OutputStreamWriterjson写入HttpURLConnection时抛出OutputStreamWriter。如何让它工作?

Dockerfile:

代码语言:javascript
复制
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/client-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8088
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-28 14:00:48

两个客户端应该在同一网络上运行。因此创建一个网桥MY_BRIDGE

代码语言:javascript
复制
docker network create MY_BRIDGE

运行时,将两个容器连接到桥上。为服务器容器命名为MY_SERVER

代码语言:javascript
复制
docker run --network MY_BRIDGE --name MY_SERVER MY_SERVER_IMAGE

docker run --network MY_BRIDGE MY_CLIENT_IMAGE

在运行客户端容器之前,必须将应用程序代码从localhost:8080更改为MY_SERVER:8080

请参阅Docker Bridge Documentation

票数 2
EN

Stack Overflow用户

发布于 2018-08-28 04:27:45

在docker中,每个容器都有自己的虚拟网络堆栈- localhost是容器的环回接口的地址,而不是主机的环回接口的地址。

您必须配置您的客户端以使用其主机名连接到服务器。如果您使用的是docker-compose,则只需输入服务器的容器名称;如果您正在手动运行容器,则只需输入docker主机的主机名。

参考:Networking with standalone containers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52046211

复制
相关文章

相似问题

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