仔细看,我的问题和这个问题一样: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 地址