我使用gradle开发了一个小型Java演示Web应用程序,我想用WildFly进行dockerize。我已按照here的说明进行操作。
Dockerfile
是:
FROM jboss/wildfly
MAINTAINER Me <me@qmail.com>
RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin#70365 --silent
ADD build/libs/my-demo.war /opt/jboss/wildfly/standalone/deployments/
当我使用Docker启动图像并浏览localhost:8080
或localhost:9990
时,我得到This site can’t be reached
。
然而,当我使用localhost:8080
时,我的应用程序在gradle appRun
上成功运行。
缺少什么?
我在Windows 10家庭版下。我曾尝试在Ubuntu 16下使用另一台笔记本电脑并遇到同样的问题。
答案 0 :(得分:5)
三件事:
<强>第一强>
基本映像EXPOSE
仅限端口8080,因此为了能够访问端口 9990 ,您需要将EXPOSE 9990
添加到Dockerfile或--expose 9990
添加到docker run
1}}呼叫。
<强>第二强> 您没有发布您的cmd行调用,所以我只能猜测,但您需要将容器端口映射到主机端口,例如(包括额外的暴露端口)
docker run --expose 9990 -p 9990:9990 -p 8080:8080 -it my-demo
<强>第三强> 如果您使用docker-machine,就我所记得的Win 10 home而言仍然如此,那么您将无法在localhost上使用您的应用程序,而是在Docker-machine VM的IP上。您可以通过调用
找出哪个IPdocker-machine ip
在Linux上,一旦添加了端口映射,就可以在localhost:PORT上安装你的应用程序。