如何访问托管在容器中的应用程序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容器外的这个登录页面吗?

+0

你使用的'泊坞窗run''--publish'参数使您的应用程序的端口?你能分享你发行的docker run命令吗? –

+0

这是我给的运行命令。 docker run -ti -p 8000 -p 443 -p 8443 -p 9997 -p 8080 -h“hostname”“imagename”。它没有发布选项。 – Ram

+0

后来,我从我的机器上运行了以下映射命令。 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

尝试curl http://localhost:32795/testapp/login.jsp

docker ps表明,容器的8080端口绑定到外部端口32795:[...] 0.0.0.0:32795->8080/tcp [...]