【问题标题】:Not open web page on port 8080 when start tomcat inside Docker在Docker内启动tomcat时无法在端口8080上打开网页
【发布时间】:2020-04-20 03:59:03
【问题描述】:

在我的本地计算机 Windows 10(64 位)上,我启动了 docker Toolbox。然后我拉 Tomcat 图像并像这样运行它:

docker run -it tomcat

成功了。

31-Dec-2019 17:54:27.598 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
31-Dec-2019 17:54:28.849 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [1,246] ms
31-Dec-2019 17:54:28.851 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
31-Dec-2019 17:54:29.029 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [178] ms
31-Dec-2019 17:54:29.031 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
31-Dec-2019 17:54:29.128 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [90] ms
31-Dec-2019 17:54:29.129 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
31-Dec-2019 17:54:29.251 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [122] ms
31-Dec-2019 17:54:29.254 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
31-Dec-2019 17:54:30.480 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [1,226] ms
31-Dec-2019 17:54:30.499 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
31-Dec-2019 17:54:30.592 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
31-Dec-2019 17:54:30.621 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3185 ms

但是当我打开浏览器并输入时

http://127.0.0.1:8080/

但找不到页面

为什么?

【问题讨论】:

  • (a) 因为您没有docker run -p 选项; (b) 由于您使用的是 Docker Toolbox,因此您需要 docker-machine ip 地址,通常是 192.168.99.100,而不是 localhost

标签: windows docker


【解决方案1】:

@DavidMaze 是对的:在您描述的情况下,同时存在几个问题(至少两个,也许更多,见下文),每个问题都单独阻止 Windows 主机上的浏览器访问部署在 Docker 中的 Web 应用程序容器:

  1. Web 应用程序需要监听 0.0.0.0 特殊 IP 地址(不是 localhost)。
  2. docker run-p (--publish) 选项是必需的。假设 web 应用监听 8080 端口,然后将此暴露的端口发布到主机上的 80 端口:docker run -p 80:8080 […](但两个端口可以相同)
  3. 最后,当您在 Windows 上使用 Docker Toolbox 时,您需要确定 Web-app 可用的 Docker Machine IP(不是localhost):如果 Docker Toolbox 在启动时不直接显示此信息,您可以想跑:docker-machine ip dev

更多详情

【讨论】:

  • 1. docker-machine ip -> 192.168.99.100, 2. docker run -it -p 1234:8080 tomcat, 3. 在 192.168.99.100:1234 打开页面。现在页面打开成功
猜你喜欢
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 2021-05-28
  • 2021-08-23
  • 2014-04-24
  • 2019-12-16
  • 1970-01-01
相关资源
最近更新 更多