我已经能够使用docker创建一个分片集群,它有3个分片,每个分片都是副本集,副本集的每个成员都有持久存储,我已经测试过它。
问题是,当我停止并删除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容器返回并指向同一数据目录时,集群将像删除容器之前一样。
非常感谢您对此的任何帮助,谢谢。
答案 0 :(得分:1)
问题是我正在为configsvr的/ data / db目录设置持久存储,实际上我需要将docker文件中的持久存储挂载到/ data / configdb目录。