在Windows上的boot2docker – 无法访问暴露的端口

我已经在Windows 7上安装了boot2docker(完全安装),并试图运行容器端口redirect演示 :

docker run --rm -i -t -p 80:80 nginx 

看起来它不是很好的完成,它只是停下来,看起来像这样:

在这里输入图像说明

当我打开另一个git bash shell并运行boot2docker ip我得到192.168.59.103,当我在chrome中popup时,我得到Error code: ERR_CONNECTION_TIMED_OUT

它适用于Ubuntu 14.04上的普通docker工人。 我还需要做些什么来使它在Windows上的boot2docker工作?

Solutions Collecting From Web of "在Windows上的boot2docker – 无法访问暴露的端口"

更仔细的看,我的问题是这个问题是一样的: 码头,不能达到“轨道服务器”发展从本地主机:3000使用码头标志-p 3000:3000

对我来说, 这个问题的答案就是这个问题,它只是说要运行

 boot2docker ssh -L 8080:localhost:80 

在启动boot2docker之前在终端

在我的情况下,我这样做(从git bash终端):

 boot2docker init # from https://github.com/boot2docker/boot2docker boot2docker up boot2docker ssh -L 8787:localhost:8787 # sets up port forwarding and starts boot2docker docker run -d -p 8787:8787 cboettig/rstudio # starts the container I want 

然后在Windows中进入我的网页浏览器,并将其指向http://localhost:8787/并获得RStudio的服务器实例。 当我完成时:

 docker rm -f $(docker ps -a -q) # delete all containers 

更新:降级到早期版本的VirtualBox将解决这个问题

经过与文件夹共享的努力,我回顾了以前的VirtualBox版本,发现在4.3.12版本中,我可以启用文件夹共享, 根据官方说明准确地转发端口,即我可以访问我的码头容器在192.168.59.103 。 所以降级VirtualBox是解决这个问题的另一个选择。

其他更新:更新到boot2docker v1.3.1的新版本将解决此问题

这个版本刚刚在一个星期前发布,包括VirtualBox Guest Additions,它简化了所有这些。 我现在干脆做

 boot2docker ssh # start boot2docker docker run -d -p 8787:8787 -v /c/Users/foobar:/home/rstudio/foobar rocker/rstudio 

我可以按照预期的方式进行工作,并可以在我的浏览器中使用http://localhost:8787/ (linux)或http://192.168.59.103:8787 )登录RStudio,它正常工作。

在这种情况下,我还得到了与我的计算机上的现有文件夹( C:/Users/foobar相对应的/c/Users/foobar 文件夹共享 , foobar可以是任何东西。 使用这种方法,我可以在Windows和RStudio之间以两种方式读写文件,而且我不需要像官方文档中的samba方法那样连接到一个特殊的IP地址

在尝试boot2docker start失败之后,我也遇到了这个问题。 这创建了在VirtualBox( VirtualBox Host-Only Ethernet Adapter #2VirtualBox Host-Only Ethernet Adapter #3 )上配置的多个host-only网络的条目,而且可能boot2docker的虚拟机使用的是VirtualBox Host-Only Ethernet Adapter #3

我使用Virtualbox标准UI进行了清理,只剩下其中一个网络,现在一切正常。

我正在使用boot2docker 1.5.0。

只记录发生在我身上的事情,让我失去了几个小时。