我已经能够使用具有3个分片的docker创建一个分片集群,每个分片都是一个副本集,副本集的每个成员都具有我测试并可以正常工作的持久性存储。

问题是,当我停止并删除docker容器,然后再次使用它们来使用相同的持久性存储时,这些碎片不会附加到群集,在谷歌搜索后,我相信这是因为它们以前已经附加到了群集。

sh.status({verbose:1})的输出未显示任何碎片

sh.addShard(“a / mongo-shard-a0:27017”)的输出显示:

"errmsg" : "E11000 duplicate key error collection: admin.system.version index: _id_ dup key: { : \"shardIdentity\" }"

我天真地假定,当Docker容器返回并指向同一数据目录时,群集将与删除容器之前的状态相同。

非常感谢您对此提供的任何帮助,谢谢。

最佳答案

问题是我正在为configsvr将持久性存储设置到/ data / db目录,实际上我实际上需要将docker文件中的持久性存储挂载到/ data / configdb目录。

09-27 00:59