无法连接到Docker中运行的tomcat(连接被拒绝)
我是Docker的新手,我正在尝试运行默认的tomcat映像。我看到容器正在运行,但当我试图从我的web浏览器点击它时,我得到“连接被拒绝” 这是怎么回事 详细信息 我在Windows 7 PC上安装了Docker工具箱。我从旧版本的boot2docker迁移了boot2docker VM。(上面没有什么内容……只有“hello world”的图片。) 在Docker Quickstart终端中,我可以使用以下命令启动新的tomcat容器:无法连接到Docker中运行的tomcat(连接被拒绝),tomcat,docker,windows-7-x64,boot2docker,Tomcat,Docker,Windows 7 X64,Boot2docker,我是Docker的新手,我正在尝试运行默认的tomcat映像。我看到容器正在运行,但当我试图从我的web浏览器点击它时,我得到“连接被拒绝” 这是怎么回事 详细信息 我在Windows 7 PC上安装了Docker工具箱。我从旧版本的boot2docker迁移了boot2docker VM。(上面没有什么内容……只有“hello world”的图片。) 在Docker Quickstart终端中,我可以使用以下命令启动新的tomcat容器: docker run -i -p 8080:8080
docker run -i -p 8080:8080 --rm tomcat:8-jre8
我能够使用以下命令验证tomcat是否已启动并正在运行:
docker ps
docker exec -i <containerId> bash
从这个卷曲中,我得到了预期的HTML响应
但是,如果直接从Docker Quickstart终端运行curl命令:
curl localhost:8080
…我被“拒绝连接”
现在有一些令人费解的事情。。。如果我跑
boot2docker ip
…它给我一个错误,即“boot2docker vm”未运行。当boot2docker VM关闭时,我的容器如何运行?有件事我真的不明白
如果我运行“boot2docker up”,我可以获得一个IP地址,但仍然无法从该IP地址访问tomcat。您正在使用docker toolbox。boot2docker的润滑脂已被去除。现在,每个docker守护进程(VM)都由 要查看哪些VM正在运行,请使用以下命令
docker-machine ls
它将显示系统上运行的默认虚拟机及其IP地址,您可以从该IP端口8080访问Tomcat。阅读有关docker machine的更多信息,了解如何管理多个vm等。我认为您可能需要将端口从boot2docker vm转发到主机。我打开了Oracle vm VirtualBox Manager,看起来我有两个vm。。。一个名为boot2docker,已停止,另一个名为“default”,正在运行。应该有两个虚拟机吗?或者这是因为我从旧的boot2docker版本迁移而来?我应该同时删除它们并让boot2docker创建一个新的吗?我怎样才能让boot2docker在默认情况下做正确的事情,这样我就不必弄乱VirtualBox中的设置了?我会说,清理一切。是的,当您在Windows和Mac上安装boot2docker时,它会为您提供VM,并在VM docker守护进程中运行。Boot2docker应该处于运行状态。谢谢Sachin,你刚刚让我开心了!:)我的荣幸@jayeff:):)
docker-machine ls