无法连接到在Docker中运行的Tomcat(连接被拒绝)

我对Docker非常陌生,我试图运行默认的tomcat镜像。 我看到容器正在运行,但是当我尝试从我的Web浏览器中打开容器时,我收到“CONNECTION REFUSED”(连接被拒绝)。

这里发生了什么?

细节

我的Windows 7 PC上安装了Docker Toolbox。 我从boot2docker的旧版本迁移了我的boot2docker虚拟机。 (它没有太多…只是“你好世界”的形象。)

在Docker快速入门terminal中,我可以用下面的命令启动我的新的tomcat容器:

docker run -i -p 8080:8080 --rm tomcat:8-jre8 

我能够使用以下命令validationtomcat已启动并正在运行:

 docker ps docker exec -i <containerId> bash 

然后,在bash shell中:

 curl localhost:8080 

从这个curl中,我得到了预期的HTML响应。

但是,如果我直接从Docker快速入门terminal运行curl命令:

 curl localhost:8080 

…我得到“连接拒绝”。

现在这里有些令人费解的事情,如果我跑步

 boot2docker ip 

…它给我一个错误,“boot2docker-vm”没有运行。 当boot2docker虚拟机closures时,我的容器如何运行? 这里有些事情我真的不明白。

如果我运行“boot2docker”,我可以得到一个IP地址,但是我仍然无法从该IP地址访问tomcat。

您正在使用docker工具箱。 boot2docker已被删除。 现在每个docker守护进程(VM)都由Docker机器pipe理

要查看哪些虚拟机正在运行,请使用该命令

 docker-machine ls 

它会显示系统中默认运行的虚拟机及其IP地址,您可以通过端口8080从该IP访问Tomcat。了解更多关于docker-machine的信息,了解如何pipe理多个虚拟机等。