- 我将Web应用程序构建为jar文件
- 运行
docker build -t bootup .
,成功构建 - 运行
docker run -it -p 9200:9200 -d --name bootup bootup
,容器似乎启动良好,如下所示的docker ps
输出 - 但是,当我将浏览器指向
http://localhost:9200
时,什么也没有发生。
docker ps
输出:
CONTAINER ID IMAGE COMMAND CREATED
a8c4ee64a1bc bootup "/bin/sh -c 'java -ja" 2 days ago
STATUS PORTS NAMES
Up 12 seconds 0.0.0.0:9200->9200/tcp bootup
该Web应用程序已配置为在端口9200上运行,而不是Java默认的8080端口。您可以通过在docker之外(即在本地主机上)运行
./gradlew clean build && java -jar build/libs/bootup.jar
来自行验证。据我所知,我的主机上没有运行防火墙会阻止端口(我使用的是Mac 10.11.5,并验证了
系统偏好设置>>安全性与隐私>>防火墙
已关闭)。
有人能发现我哪里出错了吗?
更新:
我在主机上运行了 curl
, netstat
和 lsof
:
HOST:
curl http://localhost:9200
curl: (52) Empty reply from server
netstat -an | grep 9200
tcp6 0 0 ::1.9200 *.* LISTEN
tcp4 0 0 *.9200 *.* LISTEN
lsof -n -i4TCP:9200 | grep LISTEN
com.docke 2578 myuser 19u IPv4 <someHexNumber> 0t0 TCP *:wap-wsp (LISTEN)
然后docker exec
进入容器并运行另一个netstat
:
CONTAINER:
netstat -an | grep 9200
bash: netstat: command not found
附带照片更新:
我的浏览器截图(Chrome),指向http://localhost:9200
:
源代码的图片位于 http://localhost:9200
:
Chrome开发者工具检查位于http://localhost:9200
的页面的图片:
Chrome 开发者工具中的 Network
标签截图:
这到底是怎么回事?!?! 根据消息来源,浏览器应该能够正常呈现我的来自Dockerland的问候!信息。但根据实际的浏览器页面显示,似乎存在网络错误。而根据Chrome开发者工具显示,我的应用程序返回了各种HTML/CSS/JS内容,这些内容甚至与我的应用程序没有任何关系(查看源代码,自己看看)!!!
curl
是来自主机的 - 从容器内部执行相同的curl
,你得到了什么? - creativeChipsResponse
选项卡)。 - Nitzan Tomer