如何使用docker运行undertow java应用程序



我正在为我的应用程序使用 docker。

我能够做到以下几点

  1. 创建胖罐

  2. 从中创建 docker 镜像

  3. 运行该 docker 映像

  4. 在 8080 上列出并在 Docker 文件中添加了 EXPOSE 8080

  5. 从容器内部卷曲我的网址,卷曲本地主机:8080/样本

我面临着一些奇怪的问题,

我的撰写文件是

version: '2'
services:
  login:
    image: my-image
    ports:
     - "8080:8080"

使用 8080 端口,我无法访问该网址。

我的 Dockerfile

FROM openjdk:8-jre
COPY ./target/*-with-dependencies.jar /jars/service-jar.jar
EXPOSE 8080
CMD java  -cp /jars/service-jar.jar my.Main 

我的暗流倾听

Undertow server = Undertow.builder()
        .addHttpListener(8080, "localhost")
        .setHandler(path)
        .build();

我在谷歌中得到了一些链接,但仍然无法使其工作

http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html

修复了这个问题,通过监听 IP 到 docker 容器的 IP 地址。

我将听众更改为

Undertow server = Undertow.builder()
        .addHttpListener(8080, InetAddress.getLocalHost().getHostAddress())
        .setHandler(path)
        .build();

现在它工作正常。

"外部IP是完全不同的东西。所以总而言之,你 必须将 undertow 的主机服务器设置为 由 docker 创建的 iptables"

我错过了在我的参考链接(http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html)中阅读这一行。

我的老板发现.

你是如何运行你的 docker 镜像的?您要发布端口吗?

docker run -p 8080:8080 ...

相关文档

相关内容

  • 没有找到相关文章

最新更新