为什么主机不在Docker容器中使用-P选项访问Web应用程序?

我是docker工人。 我在tomcat服务器上安装了spring-roo项目的图像。

docker run -P manojp1988/spring-roo 

以上图片发布到dockerhub。 但我的问题是,我无法从我的主机访问Web应用程序。

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b97ac7dd0a96 manojp1988/spring-roo "/bin/sh -c 'cd /git/" 15 seconds ago Up 15 seconds 0.0.0.0:32778->5000/tcp elated_meitner 

HTTP://本地主机:32778 /袋鼠

即使我给-P我不能连接的Web应用程序。 什么可能是错的?

-P发布到一个随机的端口。 尝试-p 5000:5000以确保容器中的端口5000映射到主机上的端口5000。

注意到你使用的是随机端口,所以我正在修改我的答案。 使用--net=host启动容器,以便可以从主机的IP访问端口。

我做的一件事是我已经下载了tomcat镜像,并在顶部configuration。 所以,只要我给-P,主机端口连接到容器中的8080。 Tomcat也在8080中部署了我的应用程序,所以它正在工作。

早些时候我已经使用maven图像,并使用embedded式的tomcat插件。 所以当我连接我的主机,主机端口总是映射到5000.不知道这是原因。