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
通过docker脚本通过身份验证创建Mongodb复制集_Mongodb_Docker_Replicaset - Fatal编程技术网

通过docker脚本通过身份验证创建Mongodb复制集

通过docker脚本通过身份验证创建Mongodb复制集,mongodb,docker,replicaset,Mongodb,Docker,Replicaset,我正在努力找到通过docker脚本对我的mongo db副本集进行身份验证的解决方案。我能够在服务器的本机mongo上实现目标,但在docker映像中我无法实现身份验证。(我也能够在docker映像上创建副本集)。我也面临同样的问题,我必须以不同的顺序进行这个过程。 尝试先设置身份验证,然后创建复制 1.启动docker mongo而不使用副本或身份验证 docker run --rm -p 22222:27017 -v datadb1:/data/db --name mongonew mo

我正在努力找到通过docker脚本对我的mongo db副本集进行身份验证的解决方案。我能够在服务器的本机mongo上实现目标,但在docker映像中我无法实现身份验证。(我也能够在docker映像上创建副本集)。

我也面临同样的问题,我必须以不同的顺序进行这个过程。 尝试先设置身份验证,然后创建复制

1.启动docker mongo而不使用副本或身份验证

docker run  --rm -p 22222:27017  -v datadb1:/data/db --name mongonew mongo:2.6
2.连接mongo并添加所需用户。并确保添加超级用户,我们将稍后使用此用户启动复制

db.createUser({ user: "superuser", pwd: "superuser", roles: [ "userAdminAnyDatabase","readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin" ]})
3.停止docker mongo并使用副本和身份验证重新启动

docker run  --rm -p 22222:27017  -v datadb1:/data/db --name mongonew mongo:2.6 --replSet replocalnew --auth
4.现在连接mongo。向我们创建的超级用户进行身份验证

db.auth("superuser","superuser");
5.现在启动复制

rs.initiate();

该身份验证是否可以通过docker启动时执行的脚本(作为
CMD
指令)来实现?@VonC:我启用了复制集,指定了唯一的名称,并在mongo配置中创建了具有所需权限的密钥文件,然后启动docker映像。我启动replicaset,创建了一个具有userAdminAnyDatabase角色的用户。在本机mongo上执行此步骤后,我无法在没有身份验证的情况下执行该命令,但在docker中它仍然可以匿名访问。Ok。docker实例中的日志()中是否有任何线索,这可以解释为什么匿名访问仍然可以通过?日志中没有任何线索。我与mongostat进行了检查。