如何访问在VMWare工作站中运行的tomcat docker容器?

时间:2016-12-01 17:23:28

标签: tomcat docker vmware vmware-workstation

我知道这个问题听起来像是一个重复的问题,但我找不到符合我要求的其他问题。所以我刚开始使用docker开发tomcat app。

VMWare Workstation 内的Ubuntu 16中安装docker并下载tomcat-docker镜像后,我想使用 START 命令而不是 RUN启动tomcat容器

我使用 START 命令,因为我不想陷入STDOUT,并且能够继续使用Linux命令行。所以我使用下面的命令启动容器

 $ docker start name_of_container

然后我发出检查命令

 $ docker inspect name_of_container

我设法看到我的tomcat实例正在使用ip: 172.17.0.2 。 所以我确实卷曲了:

 $ curl 172.17.0.2:8080 | head

我的HEAD标签打印得很完美,这意味着我成功地实例化了我的tomcat。

我的问题是:如何在Windows中从我的浏览器访问我的tomcat?如何在VMWare中创建端口转发以使我能够访问ip 172.17.0.2 ??

由于

1 个答案:

答案 0 :(得分:1)

首先,您可以使用RUN命令而不使用-d选项丢失终端。它以dettached模式启动容器,tomcat将在后台运行。

其次,当您运行容器时,您需要使用-p选项将其公开的端口映射到VM中的另一个端口。

所以run命令应如下所示:

docker run -d -p 8000:8080 tomcat

其中8000是VM上的开放端口,8080是tomcat在容器中侦听的端口。在端口8000上进入VM的流量将重定向到tomcat容器公开的端口8080。

最后,您需要找到您的VM的IP,而不是您的容器的IP。

VM上的ifconfig应该足够了。您应该能够从主机上ping它(因此稍后可以从浏览器访问它)。 因此,如果您的VM的IP结果为192.168.1.50(例如),则需要在浏览器中输入:

192.168.1.50:8000

这里8000只是一个例子。您也可以使用8080来减少RUN命令中的混淆:

docker run -d -p 8080:8080 tomcat