spring 无法在Docker中访问Sping Boot 应用程序[关闭]

62lalag4  于 2023-10-15  发布在  Spring
关注(0)|答案(1)|浏览(132)

**已关闭。**此问题需要debugging details。它目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
12天前关闭
Improve this question
我有一个Eureka 发现服务构建与Spring Boot 3。我创建了Dockerfile文件,内容如下:

FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu

RUN addgroup --system spring
RUN adduser --system spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8880:8880

当我运行docker ps时,我可以看到应用程序:

$ docker ps
CONTAINER ID   IMAGE          COMMAND                CREATED          STATUS          PORTS      NAMES
e80974c83e6c   7bb35c99e929   "java -jar /app.jar"   51 seconds ago   Up 50 seconds   8880/tcp   magical_lichterman

Docker inspect返回以下容器的IP地址

docker inspect   -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' e80974c83e6c
172.17.0.2

但是当我尝试到达172.17.0.2:8880时,我得到了ERR_CONNECTION_TIMED_OUT。有什么想法可能是错的吗?

sqserrrh

sqserrrh1#

这取决于请求来自哪里。

  • 如果您从不同的容器尝试,请确保它们位于同一网络上。
docker network create my-network
docker run --name spring-app -d --network my-network <your_image> # your spring container
docker run -d --network my-network <your_other_image> # should make a request to "http://spring-app:8080"
  • 如果您尝试从主机访问,则应打开容器端口
docker run -d -p 8080:8080 <your_image>

然后尝试运行curl http://localhost:8080

相关问题