无法从Windows中的Docker Machine实例中的容器内访问MongoDB

时间:2015-08-18 11:17:23

标签: windows mongodb docker virtual-machine docker-machine

我在工作时在桌面上运行Windows 7,并且我已登录VPN上的常规用户帐户。为了开发软件,我们通常会打开一个开发虚拟机并在那里工作但是最近我被分配了一项任务来研究Docker和Mongo DB。我对主机上安装的内容的访问非常有限。

这就是我的问题:

我可以从Windows连接到Docker机器内容器内的MongoDB实例并进行更改吗?理想情况下,我希望使用Mongo Management Studio等GUI工具来更改容器中的Mongo数据库。

通过检查Mongo容器,它的端口列为:0.0.0.0:32768 - > 27017 / TCP 和docker-machine ip(vm name)返回192.168.99.111。

我已经在mongod.conf文件中注释掉了127.0.0.1绑定主机ip。

根据我迄今为止所研究的内容,大多数用户通过使用-p设置的端口连接到他们的docker-machine IP或者使用-P来解决他们的问题。不幸的是,尝试连接192.168.99.111:32768不起作用。

我对这种环境感到非常难过。我可以使用bash进入容器内部并操作数据库,但是我想知道我是否可以在Windows中执行此操作。

感谢有人可以提供帮助。

2 个答案:

答案 0 :(得分:1)

在阅读了Smutje建议ping VM IP并测试无效后,我试图找到一个pingable IP,希望能让我更接近目标。

通过在Boot2Docker VM中执行“ifconfig”(但不在容器内),我能够找到eth0下列出的另一个IP。这个IP对我来说看起来像134.36.xxx.xxx并且是可ping的。运行Mongo容器后,我现在可以通过连接到134.36.xxx.xxx:32768从Mongo Management Studio访问数据库并从那里操作数据。

答案 1 :(得分:0)

如果您可以选择为您的开发虚拟机选择操作系统,请使用Ubuntu并设置docker,其中包含您要测试的所有容器。无论哪种方式,你都需要有一个用于在Windows上测试docker的VM,因为如果我没有弄错的话,它会使用VirtualBox。相反,设置一个Ubuntu VM并对其进行所有测试。