Docker容器与外部数据库进行通信

Asi*_*sim 5 docker docker-compose

我正在研究将其移至Docker的应用程序。该应用程序位于前端的反向代理nginx将呼叫定向到前端应用程序。然后将前端应用程序链接到后端Java应用程序。最后是一个mongo数据库。我不想将mongo db移动到容器,因此希望我的应用程序直接与mongo db通信。我使用docker-compose使我的容器栩栩如生。我的问题是如何使我的容器使用docker-compose与mongo db通信。我搜索了,并找到了下面的链接,该链接正在谈论中,并计划添加到Docker中。但是我找不到可靠的例子。我是Docker的新手,因此非常感谢您的帮助。 https://github.com/docker/compose/issues/1110

Rad*_*nov 4

首先,最佳实践是将任何持久数据保留在映像之外,因此您做出了一个很好的决定;)。
因此,要连接到主机上的数据库,请按照下列步骤操作:

  1. 首先你必须找到docker网络中主机的IP地址。如果您运行的是某些 Linux 发行版,或者如果您运行的是 Windows,则可以通过ip a在控制台中键入来完成此操作。ipconfig /all您可以在 docker 桥接适配器旁边看到 IP 地址(如果您使用的是默认适配器,则该地址应该是,docker0并且该行应该以 开头inet)。
  2. 然后确保数据库用户没有限制用于通过外部网络进行连接。
  3. 当您拥有主机(IP 地址)、数据库、数据库用户和数据库密码后,只需将它们放入应用程序的数据库配置中即可。

那应该可以完成工作。