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 容器上运行的 Jupyter notebook