如何访问在VMWare工作站中运行的tomcat docker容器?
我知道这个问题是一个重复的问题,但是我找不到符合我的要求的其他问题。 所以我刚开始使用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:
$ curl 172.17.0.2:8080 | head
而且我的HEAD标签打印完美,这意味着我成功地实例化了我的tomcat。
我的问题是:如何从Windows中的浏览器访问我的Tomcat? 我怎么能在VMWare中创build一个端口转发,使我能够访问IP 172.17.0.2?
谢谢
如果使用docker create来创build容器,请使用--publish
指定发布到主机的端口:
docker create --publish 8080:8080 --name my-tomcat tomcat
然后你可以开始:
docker start my-tomcat
您的主机上的端口8080
现在将stream量发送到您的容器的端口8080
。
您应该可以在浏览器中访问http://ip-of-vm:8080
。
首先,您可以使用RUN命令,而不必使用-d选项来释放terminal。 它以分离模式启动容器,tomcat将在后台。
其次,运行容器时,需要使用-p选项将其公开端口映射到VM中的另一个端口。
所以运行命令应该是这样的:
docker run -d -p 8000:8080 tomcat
其中8000是虚拟机上的开放端口,8080是tomcat在容器中侦听的端口。 在端口8000上到达您VM的stream量将被redirect到tomcat容器暴露的端口8080。
最后,你将需要find你的虚拟机的IP,而不是你的容器的IP。
虚拟机上的ifconfig应该足够了。 您应该能够从您的主机ping它(以便稍后可以从浏览器访问它)。 因此,如果您的虚拟机的IP变为192.168.1.50(例如),您将需要在浏览器中input:
192.168.1.50:8000
这里8000只是一个例子。 您也可以使用8080,以免在RUN命令中产生混淆:
docker run -d -p 8080:8080 tomcat