如何访问托管在容器中的应用程序URL?
问题描述:
我托管我们的应用程序在码头集装箱内。当我运行docker ps
命令时,它给出了如下所示的信息。如何访问托管在容器中的应用程序URL?
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6405daf98246 rdarukumalli/testapp-master "/bin/bash" 4 hours ago Up 4 hours 0.0.0.0:32797->443/tcp, 0.0.0.0:32796->8000/tcp, 0.0.0.0:32795->8080/tcp, 0.0.0.0:32794->8443/tcp, 0.0.0.0:32793->9997/tcp insane_poincare
我试图从我的机器上访问这个应用程序使用以下URL。目前为止没有任何工作
0.0.0.0:32795/testapp/login.jsp
0.0.0.0:8080/testapp/login.jsp
localhost:8080/testapp/login.jsp
localhost:32795/testapp/login.jsp
但是,如果我给出命令"curl http://localhost:8080/testapp/login.jsp"
泊坞窗容器中使用bash, 我可以登录网页的HTML来了。
有人能帮我理解这些URL映射和我需要用什么URL访问docker容器外的这个登录页面吗?
答
尝试curl http://localhost:32795/testapp/login.jsp
。
你docker ps
表明,容器的8080端口绑定到外部端口32795:[...] 0.0.0.0:32795->8080/tcp [...]
你使用的'泊坞窗run''--publish'参数使您的应用程序的端口?你能分享你发行的docker run命令吗? –
这是我给的运行命令。 docker run -ti -p 8000 -p 443 -p 8443 -p 9997 -p 8080 -h“hostname”“imagename”。它没有发布选项。 – Ram
后来,我从我的机器上运行了以下映射命令。 rdr pass inet proto tcp from any to any port 8000-> 127.0.0.1 port 32796 rdr pass inet proto tcp from any to any port 8080 - > 127.0.0.1 port 32795 rdr pass inet proto tcp from any to any port 8443 - > 127.0.0.1端口32794 rdr通过inet proto tcp从任何端口到9997 - > 127.0.0.1端口32793 rdr通过inet proto tcp从任何端口到任何端口443 - > 127.0.0.1端口32797 – Ram