当前位置: 首页 > 面试题库 >

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

郜振国
2023-03-14
问题内容

我有以下用于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"]

和弹簧配置…

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答案,该答案]很好地解释localhost了Docker上下文中的代表。

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

最终,正如OP在评论中确认的那样,对于SpringBoot而言,只需server.addressapplication.properties文件中分配属性即可实现此目的(参见文档)。



 类似资料:
  • Dockerfile文件 docker撰写。yml 我发射的命令是为了让这个起来 docker-compose-fdocker-compose.yml 之后我去了https://localhost:3000这个项目没有加载。这是可复制的回购协议https://github.com/reyanshmishra/My-Portfolio-ReactJS 谢啦

  • 问题内容: 我已经创建了一个Docker映像来测试Angular应用程序,但是无法从主机连接到Docker容器中正在运行的应用程序。 该映像是使用具有以下内容的Dockerfile创建的:EXPOSE 4200 8080 80 我使用以下命令运行docker容器:docker run -ti -p 4200:4200 angulardev / bin / bash 在容器内,我创建Angular应

  • 我按照 https://mherman.org/blog/dockerizing-a-react-app/ 下的步骤操作 我的设置: < li>Windows 10主页 < li>docker命令在docker快速启动终端https://docs . Docker . com/toolbox/toolbox _ install _ windows/中运行 如何重现:按照第一个链接中的步骤操作: 全

  • 我已经创建了一个docker映像来测试Angular应用程序,但是我无法在docker容器内从主机连接到正在运行的应用程序。 该图像是使用带有:EXPOSE 4200 8080 80的Dockerfile创建的 我使用命令运行docker容器:docker run-ti-p 4200:4200angulardev/bin/bash 在容器内部,我创建了Angular应用程序,并使用:ng serv

  • 我正在测试一些与比特币相关的代码,为了测试它,我在docker容器中安装了比特币测试网盒。 我使用这个指南:https://registry.hub.docker.com/u/freewil/bitcoin-testnet-box/ 我没有任何问题地拉和运行码头工人。 但是,我无法编辑其目录中的bitcoin.conf文件,因为我没有安装像NANO这样的编辑器。 我想: 但它不起作用。我该怎么解决

  • 我一步一步做了什么: 1)构建我的应用程序(结果,我的出现在文件夹中) 2)移动到所在的目录,并执行命令: 3)以容器形式运行此: 结果,我的应用程序成功启动。 但现在我决定在我的申请中改变一些东西。我做了,试着重复所有的步骤。