我正在为我的应用程序使用 docker。
我能够做到以下几点
-
创建胖罐
-
从中创建 docker 镜像
-
运行该 docker 映像
-
在 8080 上列出并在 Docker 文件中添加了 EXPOSE 8080
-
从容器内部卷曲我的网址,卷曲本地主机: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 ...
相关文档