概述
问题描述:
现有 mongo, explorer 两个实例分别使用 docker-compose.yml 启动,这两个实例在同一台宿主机上,其中 explorer 需要与 mongo 通信,采用 DB_URL=host:port
是无法与 mongo 建立连接的。
问题分析:
每一个 docker-compose 启动时,都会默认的使用一个 bridge 类型的网络,由于 mongo 和 explorer 不是在同一个 docker-compose 中,所以这两个实例是在两个不同的网络中,所以直接使用 DB_URL=host:port
是无法与 mongo 通信的。
解决方式:
方式一: 使 mongo 和 explorer 位于同一 network 中。
- 将 mongo 和 explorer 写在同一个 docker-compose.yml 文件中,那么这两个实例就可以互相通信
- mongo 和 explorer 任可以不位于同一个 docker-compose 文件中,但在启动时,需要显示的声明为同一个 network。
方式二:更改 container 的 network_mode
将 mongo 和 exploer container 中的 network_mode
更改为 host
,在 explorer 中便可以使用 DB_URL=host:port
来和 mongo 通信。
但需注意,此种方式 conta