运行docker映像时无法到达localhost:8080

我开发了一个小型的Java演示Web应用程序,使用Gradle,我想用WildFly进行dockerize。 我遵循这里的指示。

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:8080localhost:9990 ,我得到一个This site can't be reached

但是,当我使用gradle appRun时,我的应用程序在localhost:8080上成功运行。

什么不见​​了?

我在Windows 10家庭版下。 我已经尝试在Ubuntu 16下的另一台笔记本电脑,并面临同样的问题。

三件事:

一个基本的图像EXPOSE的只有端口8080,所以要能够访问端口9990,您需要添加EXPOSE 9990到您的Dockerfile或--expose 9990到您的docker run调用。

第二你没有发布你的CMD线电话,所以我只能猜测,但你需要将容器端口映射到主机端口,例如(包括额外的暴露端口)

 docker run --expose 9990 -p 9990:9990 -p 8080:8080 -it my-demo 

第三如果你使用Docker-machine,因为Win 10 home仍然是这样的情况,据我所知,你不会在localhost上运行应用程序,而是在docker-machine VM的IP上。 你可以通过调用找出哪个IP

 docker-machine ip 

在linux上,一旦添加端口映射,您将在localhost:PORT上安装应用程序。