仔细观察,我的问题和这个问题一样:Docker, can't reach "rails server" development from localhost:3000 using docker flag -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 版本中我可以启用文件夹共享并完全按照官方说明转发端口,也就是说我可以访问我的 docker 容器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)或(Windows)的浏览器中登录RStudio,http://192.168.59.103:8787
它就可以正常工作。
在这种情况下,我还可以使用文件夹共享,/c/Users/foobar
对应于我计算机上的现有文件夹C:/Users/foobar
,并且foobar
可以是任何东西。使用这种方法,我可以在 Windows 和 RStudio 之间双向读写文件,并且不需要像官方文档中的 samba 方法那样连接到特殊的 IP 地址