Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 带有docker的Mongo副本节点_Node.js_Mongodb_Docker - Fatal编程技术网

Node.js 带有docker的Mongo副本节点

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映像与docker一起设置了Mongo主节点。 现在,我希望仅使用docker在当前设置中添加副本节点。
有人能帮我吗?

你可以查看类似“”的指南,但这涉及多台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解决此问题的步骤有很多:

  • 切换到数据库管理
  • 使用管理员

  • 创建一个新的站点管理员用户
  • 创建一个新的根用户
  • db.createUser({ 用户:“siteRootAdmin”, 密码“, 角色:[{role:“root”,db:“admin”}]})

  • 现在,我们可以启动副本集:
  • 验证初始副本并检查配置:

  • 我构建了一个映像,它为复制和分片集群提供了环境变量:


    副本集将自动初始化。

    谢谢@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"
                  }
            ]
    }