docker 运行启动容器,但 localhost 未加载(Windows 10)

Posted

技术标签:

【中文标题】docker 运行启动容器,但 localhost 未加载(Windows 10)【英文标题】:docker running splash container but localhost does not load (windows 10) 【发布时间】:2016-10-19 21:41:37 【问题描述】:

我正在关注this tutorial 使用 splash 来帮助抓取网页。我安装了 Docker 工具箱并做了这两个步骤:

$ docker pull scrapinghub/splash
$ docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash

我认为它运行正常,根据 Docker 窗口中的提示消息,如下所示:

但是,当我在 Web 浏览器中打开 `localhost:8050' 时,它显示 localhost 无法正常工作。

在这种情况下可能出了什么问题?谢谢!

【问题讨论】:

【参考方案1】:

@user3768495,当您使用 http://192.168.99.100:8050/ 时,您实际上是在使用 docker-machine ip,并且此 ip 仅在您的机器上可用,而在网络上不可用。要将其映射到 localhost,您确实需要将相同的端口转发到您的 localhost。我遇到了同样的问题,我在下面的链接中详细说明了这个过程。

https://***.com/a/35737787/4820675

【讨论】:

【参考方案2】:

您已将该端口映射到您的 docker 主机(VM),但您尚未将该端口转发到您的实际“本地主机”(您的 Windows 主机)

您需要在Network settings of your VM(例如“默认”)或VBoxManage controlvm commands 中声明该端口转发。

只有这样,您才能从 Windows 主机 (localhost) 访问该端口(由您的 VM 使用)。

或者您可以使用 boot2docker 虚拟机的 IP 地址访问同一端口:请参阅 docker-machine ls

【讨论】:

我没有更改Network settings of VM 中的任何内容。相反,我使用了http://192.168.99.100/8050/,它工作正常。我想当我输入http://localhost时,电脑不知道我特意要求IP地址192.168.99.100。谢谢! @user3768495 端口转发将允许您使用 localhost,因为该端口将被映射到正确的 docker-machine ip。

以上是关于docker 运行启动容器,但 localhost 未加载(Windows 10)的主要内容,如果未能解决你的问题,请参考以下文章

运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知

从docker容器内的节点服务器访问ubuntu localhost

Docker:错误 500 - 无法启动容器

访问在 Docker 容器上运行的 Jupyter notebook

只查看正在运行的容器和docker主机做了哪些端口映射的命令

Docker监控容器资源的占用情况