我正在官方回购的码头工作箱中运行tomcat。
docker pull tomcat
根据homepage中所述的指导原则,我运行实例并启动Tomcat服务器
docker run -it --rm -p 8888:8080 tomcat:8.0
端口8888上有Tomcat服务器。当我执行以下命令时,我能够在 boot2docker 中获得响应
curl localhost:8888
但是我想从我的PC中安装的Web浏览器访问该页面(这是在Virtual Box之外,我的Windows中安装的那个)。我可以吗?如果是这样的话?
答案 0 :(得分:24)
您可能在VirtualBox设置中缺少端口转发规则。
boot2docker vm > settings > Network > NAT adapter > Port forwarding
请注意最后一项:
这样您就可以配置整个链:hostPort:virtualBoxPort
然后virtualBoxPort:containerPort
,如下图所示:
答案 1 :(得分:8)
自几个月前推出Docker-Tools以来,似乎有更好的答案。如果您不使用Docker Tools,请查看https://docs.docker.com/machine
如果您使用的是Docker Tools,
$ docker-machine ls
$ docker-machine ip <machine-name>
$ curl 192.168.99.100
答案 2 :(得分:3)
运行boot2docker ip
以获取docker bridge的IP。然后你可以运行curl BRIDGE_IP:8888
IP将类似于192.168.59.103。使用boot2docker,VM网络堆栈不是您的本地主机,而是在虚拟接口上运行。
答案 3 :(得分:1)
使用docker-machine ls
获取运行容器的Virtual Box实例的IP。然后将其与您公开的关联端口一起使用,在我的情况下为8080,因此它是http://192.168.99.100:8080
。
答案 4 :(得分:0)
选项-p
具有参数hostPort:containerPort
所以在您的情况下,端口8080(在泊坞窗图像内)映射到主机上的端口8888(您的窗口框)。这意味着您应该可以通过将:8888
附加到您的网址来在Windows框中找到tomcat,就像您使用curl一样。