我已经在Windows 7上安装了boot2docker(完全安装),并尝试运行the container port redirection demo:
docker run --rm -i -t -p 80:80 nginx
看起来它并没有完全正常完成,它只是停下来看起来像这样:
当我打开另一个git bash shell并运行boot2docker ip
时,我得到192.168.59.103,当我在chrome中弹出它时,我得到Error code: ERR_CONNECTION_TIMED_OUT
在Ubuntu 14.04上使用普通的docker它对我很好。在Windows上使用boot2docker还需要做些什么呢?
答案 0 :(得分:14)
仔细观察,我的问题与此问题相同:Docker, can't reach “rails server” development from localhost:3000 using docker flag -p 3000:3000
对我有用的问题的答案是this one,它只是说要运行
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中的Web浏览器并将其指向http://localhost:8787/
并获得RStudio的服务器实例。当我完成时:
docker rm -f $(docker ps -a -q) # delete all containers
更新:降级到VirtualBox的早期版本将解决此问题
struggling with folder sharing之后我通过VirtualBox的早期版本退步,发现在版本4.3.12中我可以启用文件夹共享和根据官方说明完全转发端口,即我可以在192.168.59.103
访问我的docker容器。因此,降级VirtualBox是解决此问题的另一种选择。
另一个更新:更新到boot2docker v1.3.1的新版本将解决此问题
这个release刚刚在一周前推出,其中包括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
(Windows)登录到RStudio,它就可以了。
在这种情况下,我还folder sharing使用了/c/Users/foobar
,与我C:/Users/foobar
计算机上的现有文件夹相对应,foobar
可以是任何内容。使用这种方法,我可以在Windows和RStudio之间读取和写入文件,我不需要像官方文档中的samba方法那样连接到特殊的IP地址
答案 1 :(得分:1)
在boot2docker start
尝试失败后,我也遇到了这个问题。这创建了在VirtualBox(host-only
,VirtualBox Host-Only Ethernet Adapter #2
)上配置的VirtualBox Host-Only Ethernet Adapter #3
个网络的多个条目,并且可能boot2docker的VM使用的是错误的。
我使用Virtualbox标准UI清理,只留下一个网络,现在一切正常。
我使用的是boot2docker 1.5.0。
只是记录发生在我身上的事情,让我失去了几个小时。