[英]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.