我知道这个问题听起来像是一个重复的问题,但我找不到符合我要求的其他问题。所以我刚开始使用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 ??
由于
答案 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