通过 docker 脚本使用身份验证创建 Mongodb 副本集

Bal*_*ngh 5 mongodb docker replicaset

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

Gan*_*Mit 3

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

1.在没有副本或身份验证的情况下启动docker mongo

docker run  --rm -p 22222:27017  -v datadb1:/data/db --name mongonew mongo:2.6
Run Code Online (Sandbox Code Playgroud)

2.连接mongo并添加你想要的用户。并确保添加超级用户,稍后我们将使用该用户启动复制

db.createUser({ user: "superuser", pwd: "superuser", roles: [ "userAdminAnyDatabase","readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin" ]})
Run Code Online (Sandbox Code Playgroud)

3.停止 docker mongo 并使用副本和身份验证重新启动

docker run  --rm -p 22222:27017  -v datadb1:/data/db --name mongonew mongo:2.6 --replSet replocalnew --auth
Run Code Online (Sandbox Code Playgroud)

4.现在连接mongo。使用我们创建的超级用户进行身份验证。

db.auth("superuser","superuser");
Run Code Online (Sandbox Code Playgroud)

5.现在开始复制

rs.initiate();
Run Code Online (Sandbox Code Playgroud)