Node.js 带有docker的Mongo副本节点
我已经使用docker映像与docker一起设置了Mongo主节点。 现在,我希望仅使用docker在当前设置中添加副本节点。Node.js 带有docker的Mongo副本节点,node.js,mongodb,docker,Node.js,Mongodb,Docker,我已经使用docker映像与docker一起设置了Mongo主节点。 现在,我希望仅使用docker在当前设置中添加副本节点。 有人能帮我吗?你可以查看类似“”的指南,但这涉及多台docker服务器 它使用要在所有节点上使用的密钥文件密钥文件(openssl-rand-base64 741>mongodb-keyfile)用于。 允许创建管理员用户,然后添加副本服务器: docker run \ --name mongo \ -v /home/core/mongo-files/data:/dat
有人能帮我吗?你可以查看类似“”的指南,但这涉及多台docker服务器 它使用要在所有节点上使用的密钥文件密钥文件(
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")
使用docker解决此问题的步骤有很多:
我构建了一个映像,它为复制和分片集群提供了环境变量:
副本集将自动初始化。谢谢@VonC我今天将对此进行测试,并将我的评论放在这里。
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
}
rs0:PRIMARY> rs.conf()
{
"_id" : "rs0",
"version" : 1,r
"members" : [
{
"_id" : 0,
"host" : "node1.example.com:27017"
}
]
}