我想知道如何使用新的 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/