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

Unable to connect to tomcat running in Docker (Connection refused)

我是 Docker 的新手,我正在尝试 运行 默认 tomcat 图像。我看到容器是 运行ning,但是当我尝试从网络浏览器访问它时,我得到 "CONNECTION REFUSED".

这是怎么回事?

详情

我在 Windows 7 PC 上安装了 Docker 工具箱。我从旧版本的 boot2docker 迁移了我的 boot2docker VM。 (上面没有太多内容...只有 "hello world" 图片。)

在 Docker 快速启动终端中,我可以使用以下命令启动新的 tomcat 容器:

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

我能够使用以下命令验证 tomcat 已启动并且 运行ning:

docker ps
docker exec -i <containerId> bash

然后,在 bash shell:

curl localhost:8080

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

但是,如果我直接从 Docker 快速启动终端 运行 curl 命令:

curl localhost:8080

...我得到 "connection refused".

现在有一些令人费解的事情......如果我 运行

boot2docker ip

...它给我一个错误,即 "boot2docker-vm" 不是 运行ning。当 boot2docker VM 关闭时,我的容器怎么会 运行ning?这里发生了一些我真的不明白的事情。

如果我 运行 "boot2docker up",我可以获得一个 IP 地址,但我仍然无法从该 IP 地址访问 tomcat。

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

管理

要查看哪些 VM 运行,请使用命令

docker-machine ls

它将向您显示系统上的 默认 VM 运行 及其 IP 地址,您可以访问 Tomcat 来自该 IP 的 8080 端口。阅读有关 docker-machine 的更多信息,了解如何管理多个 VM 等