运行docker镜像时无法访问localhost:8080

时间:2017-04-11 17:38:31

标签: java docker web-applications localhost

我使用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:8080localhost:9990时,我得到This site can’t be reached

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

缺少什么?

我在Windows 10家庭版下。我曾尝试在Ubuntu 16下使用另一台笔记本电脑并遇到同样的问题。

1 个答案:

答案 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上。您可以通过调用

找出哪个IP
docker-machine ip

在Linux上,一旦添加了端口映射,就可以在localhost:PORT上安装你的应用程序。