【问题标题】:Unable to access MongoDB within a container within a Docker Machine instance from Windows无法从 Windows 访问 Docker 机器实例中的容器内的 MongoDB
【发布时间】:2015-08-18 11:17:23
【问题描述】:

我在工作时在我的桌面上运行 Windows 7,并且我在 VPN 上登录了一个普通用户帐户。要开发软件,我们通常会打开一个 Dev VM 并在其中工作,但最近我被分配了一项任务来研究 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 设置或使用 -P 提供的端口连接到他们的 docker-machine IP 来解决他们的问题。对我来说不幸的是,尝试连接 192.168.99.111:32768 不起作用。

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

如果有人可以提供帮助,谢谢。

【问题讨论】:

  • 你能从你的 Windows 机器上 ping 192.168.99.111 以确保你可以看到/访问容器吗?
  • Ping 导致请求超时,发送的 4 个数据包丢失,丢失率为 100%。您认为这可能是什么原因造成的?
  • 可能缺少 DNS 条目,但尝试自己搜索 - 关键字是“从主机访问 docker 机器”,这是很多场合的常见问题。
  • 感谢您的帮助,ping 并没有收到任何数据包导致我搜索备用 IP。事实证明,对于我来说,使用 docker-machine IP 不是前进的方向,而是使用 VM 中 ifconfig 的 Eth0 下列出的 IP。
  • 你能粘贴你的 docker 文件和容器启动脚本/命令吗?

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


【解决方案1】:

在阅读了 Smutje 的 ping VM IP 的建议并对其进行了测试但无济于事后,我试图找到一个可 ping 的 IP,这有望使我更接近我的目标。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2019-06-11
      相关资源
      最近更新 更多