gpt4 book ai didi

docker - 如何访问在Docker容器中运行的Spring应用程序?

转载 作者:行者123 更新时间:2023-12-02 19:05:49 27 4
gpt4 key购买 nike

我有以下用于docker文件的文件...

FROM openjdk:11-jdk-slim
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Dexternal.config.active='false'","-jar","/app.jar"]

和 Spring 配置...
docker {
springBootApplication {
baseImage = 'openjdk:11-jdk-slim'
ports = [9090, 8080]
tag = 'app:0.2'
}
}

一切似乎都开始文件,我明白了
Started Application in 8.743 seconds (JVM running for 9.153)
我知道了
f46b4cbfa799        646eced45077        "java -jar /app/simp…"   15 minutes ago      Up 15 minutes                 8080/tcp, 9090/tcp   mystifying_kirch

但是,当我运行 docker inspect <imageId> | grep "IPAddress"并像 http://<IP>:8080这样在浏览器中输入该地址时,出现超时错误。我知道我可以在运行时使用端口映射,但是有没有一种方法可以映射到我的本地主机呢?

我也尝试过这个...
curl 172.17.0.2:8080
curl: (7) Failed to connect to 172.17.0.2 port 8080: Operation timed out

因此它不是浏览器。

还试图像这样映射它...

0.0.0.0:8080->8080/tcp、9090/tcp

但是localhost:8080(或IP地址)发送空响应“未发送任何数据”。

最佳答案

在对Web服务(此处为Java Spring Boot应用程序)进行泊坞服务时,发生的典型问题是不应使用localhost地址,而应将其替换为0.0.0.0

有关更多详细信息,请参阅此SO answer,它很好地解释了Docker上下文中代表localhost的内容。

关于0.0.0.0地址,此special IP在这里仅表示“任何IPv4地址”。

最终,正如OP在评论中确认的那样,对于Spring Boot,只需在server.address文件中分配application.properties属性即可实现此目的(参见documentation)。

关于docker - 如何访问在Docker容器中运行的Spring应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52633726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com