带有 Docker 1.12 服务的 Mongodb 副本集

标签 mongodb docker docker-swarm mongodb-replica-set

我想知道如何使用新的 Docker 1.12 swarm mode 服务模型启动 mongodb 副本集。 启动服务允许您指定容器副本的数量,在最小副本集情况下将是 3。但是如果 Docker 自己运行单个容器,则如何为副本集主指定参数,所有容器都具有相同的名称服务(用于通过覆盖网络联系容器)?

副本集容器如何以不同的名称相互联系? mongodb1,mongodb2,mongodb3 - 这些必须是不同的服务吗?

直接运行 dockers 'run' 命令非常简单......现在对于有状态的容器(副本集成员)来说似乎有点困惑,而不是无状态容器,其中所有容器的服务都是一样的……

任何指针或链接都会有所帮助。

最佳答案

我意识到,通过 Kubernetes 之上的副本集的官方 mongodb 指南,您必须为每个副本集成员声明一个新服务。

因此,对于基本副本集,您声明了 3 个服务,一个主服务,两个辅助服务 - service__primary、service__secondary_1、service_secondary_2。

这些 swarm 服务中的每一个都只是代理/负载平衡到单个容器,即运行 mongod 进程。

关于带有 Docker 1.12 服务的 Mongodb 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39059981/

相关文章:

javascript - MERN 堆栈上的数据在哪里处理?

networking - Docker CNI:无法设置网络

docker-swarm - 在 Docker Swarm 中使用 Ceph 卷的最快方法是什么?

ubuntu - docker 群 : How to manually set node names?

jenkins - 如何在 SWARM 模式下从 Jenkins 中删除离线(从站/节点)

mongodb - Mongodb 中的多字段不同聚合

node.js - mongoose如何防止已有用户名的用户修改用户名

json - 编码为 json 时转到转换类型

windows - 重启docker后docker compose无法启动service network not found

docker - 我可以在 GitHub Actions 工作流程中引用 Dockerfile 而不是图像吗?