mongodb - 将 mongo 实例连接到 Docker 副本集
问题描述
我在 VM 上使用 docker-compose 运行了 3 个 MongoDB 的副本集:
- gdb1(主要)
- gdb2(中学)
- gdb3(中学)
它们工作得很好,但我无法连接在完全不同的计算机上运行的第四个实例,在 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/端口对而不是容器名称发送给新成员?
解决方案
推荐阅读
- python - 如何清理嵌套字典的代码
- neo4j - neo4j-graphql-js:使用@cypher 满足类型而不返回具体节点
- azure - Azure 数据工厂:从 MI 存储 V1 获取 MI 令牌失败。错误代码 2403
- kotlin - 如何在 Kotlin Data 类中使用默认值以及 Micronaut 自省验证?
- r - 根据 R 中的规则从 data.frame 中删除行
- javascript - 在JS中按价格对项目数组进行排序忽略具有相同价格的元素
- stream - Rabbitmq:在 MQTT 中监听
- python - 在 Python 中填充数组 - 来自 C 等效项
- email - AppleScript:在邮件应用程序中从列表中创建 SmartInbox
- discord-jda - Discord JDA:GuildSetupController -> Bot 无法再准备就绪