「mongoDB」- 忘记密码(Docker)

  CREATED BY JENKINSBOT

内容简介

本文介绍如何重置mongoDB的密码,这个mongoDB还是在Docker中启动的。

问题概述

开发在测试环境启动了一个mongoDB服务,该mongoDB是以Docker容器启动的。现在,他忘记了admin帐号的密码,来找我重置。

系统信息

mongoDB mongo:3.4.10
Container Entrypoint docker-entrypoint.sh
Container Cmd –smallfiles –rest –auth
Container NAME mongodb-single

解决办法

#!/bin/sh

#1 停止原有容器
docker container stop mongodb-single

#2 启动新容器,将原由容器的卷挂载到新容器中。使用--noauth选项关闭认证
docker run -it --name mongo-repair --rm --volumes-from mongodb-single mongo:3.4.10 --smallfiles --rest --noauth

#3 进入新容器,并直接连接,直接重置密码
docker exec -it mongo-repair mongo --port 27017
> db.changeUserPassword("admin", "new-pwd")

#4 停止新容器
docker container stop mongo-repair

#5 启动原有容器
docker container start mongodb-single

#6 验证是否成功
mongo -u admin -p 'new-pwd' 10.10.21.36:27017/admin <<<'db.runCommand({connectionStatus: 1})'

参考文献

How to Name or Rename Docker Containers
MongoDB Show Current User
Docker: Mount directory from one container to another
Modify The Default MongoDB Root Password
MongoDB what are the default user and password?