繁体   English   中英

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

[英]How to access tomcat docker container running in VMWare workstation?

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

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?

谢谢

首先,您可以使用RUN命令,而不会通过-d选项丢失终端。 它以分离模式启动容器,并且tomcat将在后台。

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

因此,运行命令应如下所示:

docker run -d -p 8000:8080 tomcat

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

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

VM上的ifconfig应该足以满足要求。 您应该能够从主机上对其执行ping操作(以便以后可以通过浏览器对其进行访问)。 因此,例如,如果您的VM的IP为192.168.1.50,则需要在浏览器中输入以下内容:

192.168.1.50:8000

这里8000只是一个例子。 您也可以在运行命令中使用8080,以减少混乱:

docker run -d -p 8080:8080 tomcat

如果使用docker create创建容器,请使用--publish指定要发布到主机的端口:

docker create --publish 8080:8080 --name my-tomcat tomcat

然后,您可以开始:

docker start my-tomcat

主机上的端口8080现在会将流量发送到容器的端口8080

您应该可以在浏览器中访问http://ip-of-vm:8080

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM