无法访问来自 Windows 的 Docker 机器实例中的容器内的 MongoDB

Unable to access MongoDB within a container within a Docker Machine instance from Windows

我 运行 Windows 7 在我的桌面上工作,我登录到 VPN 上的普通用户帐户。要开发软件,我们通常会打开一个 Dev VM 并在其中工作,但是最近我被分配了一项研究 Docker 和 Mongo 数据库的任务。我对可以在主机上安装的内容的访问权限非常有限。

这是我的问题:

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

通过检查 Mongo 容器,它列出的端口为:0.0.0.0:32768 -> 27017/tcp 和 docker-machine ip (vm name) returns 192.168.99.111.

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

根据我目前的研究,大多数用户通过使用他们用 -p 设置或用 -P 指定的端口连接到他们的 docker-机器 IP 来解决他们的问题。对我来说不幸的是,尝试连接 192.168.99.111:32768 不起作用。

我很困惑,对这个环境很陌生。我可以使用 bash 进入容器并在那里操作数据库,但是我想知道我是否可以在 Windows.

内执行此操作

如果有人能提供帮助,谢谢。

如果您可以选择为您的开发 VM 选择操作系统,请选择 Ubuntu 并设置 docker 您想要测试的所有容器。无论哪种方式,您都需要有一个 VM 来在 windows 上测试 docker,因为如果我没记错的话它使用 VirtualBox。相反,设置一个 Ubuntu VM 并在其上进行所有测试。

在阅读了 Smutje 关于 ping 虚拟机 IP 的建议并对其进行测试无济于事之后,我试图找到一个可 ping 通的 IP,这有望让我更接近我的目标。

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