6

我已经在 Windows 7 上安装了 boot2docker(完全安装),并且正在尝试运行容器端口重定向演示

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 一起工作?

4

2 回答 2

14

仔细观察,我的问题和这个问题一样:Docker, can't reach "rails server" development from localhost:3000 using docker flag -p 3000:3000

对我有用的那个问题的答案就是这个,它只是说运行

boot2docker ssh -L 8080:localhost:80

在启动 boot2docker 之前的终端

就我而言,我这样做(从 gi​​t 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 地址

于 2014-08-29T07:10:52.560 回答
1

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

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

我正在使用 boot2docker 1.5.0。

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

于 2015-04-06T21:58:41.237 回答