首页 > 解决方案 > 将 mongo 实例连接到 Docker 副本集

问题描述

我在 VM 上使用 docker-compose 运行了 3 个 MongoDB 的副本集:

它们工作得很好,但我无法连接在完全不同的计算机上运行的第四个实例,在 Docker 之外,我们称之为 gdb4。

我使用以下命令运行 gdb4: /usr/bin/mongod --replSet "gdb" --bind_ip_all

我在 gdb1 (Primary) 上使用此命令将 gdb4 添加为副本: rs.add({_id: 3, host: "host:port", priority: 3})

它被接受,但同步从未发生,我在 gdb4 的日志中得到了这个:

Error in heartbeat (requestId: 3732) to gdb1:27017, response status: HostUnreachable

这是完全可以理解的,因为它似乎使用的是 Docker 主机名(gdb1)。我该怎么做才能使副本集将主机的 IP/端口对而不是容器名称发送给新成员?

标签: mongodbdockerreplicaset

解决方案


推荐阅读