如何从浏览器访问在docker容器中运行的tomcat?

Jav*_*cal 23 containers tomcat virtualbox docker

我在官方回购的docker容器中运行tomcat.

docker pull tomcat
Run Code Online (Sandbox Code Playgroud)

根据主页中所述的指导原则,我运行实例并启动Tomcat服务器

docker run -it --rm -p 8888:8080 tomcat:8.0
Run Code Online (Sandbox Code Playgroud)

并且端口8888上有Tomcat服务器.当我执行以下命令时,我能够在boot2docker中获得响应

curl localhost:8888
Run Code Online (Sandbox Code Playgroud)

但是我想从我的PC中安装的Web浏览器访问该页面(它不在Virtual Box中,安装在我的Windows中).我可以吗?如果是这样的话?

tdu*_*eau 25

您可能在VirtualBox设置中缺少端口转发规则.

boot2docker vm > settings > Network > NAT adapter > Port forwarding
Run Code Online (Sandbox Code Playgroud)

注意最后一个条目:

在此输入图像描述

这样就可以配置整个链:hostPort:virtualBoxPort然后virtualBoxPort:containerPort,如下图所示: 在此输入图像描述


Kay*_*y V 8

似乎自几个月前推出Docker-Tools以来,有更好的答案.如果您没有使用Docker Tools,请查看https://docs.docker.com/machine

如果您使用的是Docker Tools,

  1. 找到docker机器名称 $ docker-machine ls
  2. 找到docker IP地址 $ docker-machine ip <machine-name>
  3. 使用ip地址连接,例如 $ curl 192.168.99.100