5

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

4

1 回答 1

3

我遇到了同样的问题,我不得不以不同的顺序完成这个过程。尝试先设置身份验证,然后创建复制。

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.stop docker mongo 并使用replica和auth重新启动

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();
于 2018-07-25T13:18:21.037 回答