我使用docker image https://hub.docker.com/_/mongo/设置了一个带有docker的Mongo主节点。 现在我希望仅使用docker在我当前的设置中添加副本节点。 有人可以帮我吗?
答案 0 :(得分:3)
您可以查看" Deploy a MongoDB Cluster in 9 steps Using Docker"等指南,但这涉及多个工作泊坞服务器。
它使用密钥文件密钥文件在internal authentication的所有节点(openssl rand -base64 741 > mongodb-keyfile
)上使用。
这允许创建一个管理员用户,然后添加副本服务器:
docker run \
--name mongo \
-v /home/core/mongo-files/data:/data/db \
-v /home/core/mongo-files:/opt/keyfile \
--hostname="node1.example.com" \
--add-host node1.example.com:${node1} \
--add-host node2.example.com:${node2} \
--add-host node3.example.com:${node3} \
-p 27017:27017 -d mongo:2.6.5 \
--smallfiles \
--keyFile /opt/keyfile/mongodb-keyfile \
--replSet "rs0"
在每个副本上,您启动然后检查配置:
rs.initiate()
rs.conf()
返回节点1,声明副本:
rs0:PRIMARY> rs.add("node2.example.com")
rs0:PRIMARY> rs.add("node3.example.com")
答案 1 :(得分:0)
使用docker解决此问题有很多步骤:
使用管理员
.and() .csrf().disable();
db.createUser({ 用户:" siteRootAdmin", 密码:"密码", 角色:[{role:" root",db:" admin" }]});
db.createUser( { user: "siteUserAdmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
rs.initiate() { "info2" : "no configuration explicitly specified -- making one", "me" : "node1.example.com:27017", "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 }
答案 2 :(得分:0)
我构建了一个为复制和分片集群提供env变量的映像: khezen/mongo
副本集自动初始化。