java - docker 容器内的 Spring 启动抛出 java.net.ConnectException : Connection refused (Connection refused)

标签 java docker spring-boot kitematic

客户端应用程序将 json 数据发送到 localhost:8080 上的服务器,该数据打包并作为 Docker 镜像运行。使用 Postman chrome 应用程序手动发送 json 时,服务器工作正常。问题在于,当尝试将 json 写入 时,dockerized client 会抛出 java.net.ConnectException:连接被拒绝(连接被拒绝)使用 OutputStreamWriter 的 HttpURLConnection。如何让它发挥作用?

Dockerfile:

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"]

最佳答案

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

docker network create MY_BRIDGE

运行时将两个容器附加到桥上。为服务器容器命名MY_SERVER:

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

关于java - docker 容器内的 Spring 启动抛出 java.net.ConnectException : Connection refused (Connection refused),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046211/

相关文章:

spring - 是否可以在 Spring Boot 应用程序中使用 ObjectDB

java - 如何使用 OpenShift 环境变量配置 MySQL 数据库

java - 在 Eclipse 中获取 printl 错误

docker - 如何在测试容器中使用现有网络?

linux - 使用 Dockerfile 设置多行环境变量

java - SpringBoot运行时动态外部配置Jar文件

java - SimpleDateFormat 返回 "Sun Oct 10 00:00:00 BRT 2010"但插入 "2010-10-10"

java - Android:从 sampledata 文件夹中读取 json

java - 在线程执行 'A'时是否可以阻止对 'B'的线程访问? [复制]

docker - 在 docker : Fatal error: Unable to find local grunt 中运行 grunt 时出错