在开发中,时常会使用一下MongoDB服务器。以往每次都需要在本地安装或是在虚拟机中安装,比较麻烦。现在有了 Docker, 就可以通过 Docker 直接使用,轻量,方便。
拉取镜像
在 Docker Hub 中有 MongoDB 的官方镜像,在这里我选择 4.2 版。使用命令拉取镜像:
1 | docker pull mongo:4.2-bionic |
拉取下来后可以通过 docker images 查看,大概363M大小。
启动 MongoDB
执行一下命令启动 MongoDB,
1 | docker run --name mongodev --restart=always -d -p 27017:27017 mongo:4.2-bionic mongod --auth |
该命令新建一个名为:mongodev 容器,并在容器中启动 mongod,为安全起见,启动了认证模式。
设置初始用户
要为 mongodb 设置初始的用户,我们可以直接使用本机中的 mongo 客户端的进行操作,如果没有在本机安装 mongo 客户端,也可以使用一下命令,进入到容器 mongodev 中使用容器中的客户端。
1 | docker exec -i -t mongodev bash |
执行以后,可以看到命令行已经变成了 Linux 中的提示符,类似:
1 | root@1986038635da:/# |
root 后面串:”1986038635da” 是随机生成的主机名,所以你的可能和我的不一样,不影响后续操作。
接着运行 mongo 客户的:
1 | root@1986038635da:/# mongo |
系统反馈:
1 | MongoDB shell version v4.2.1 |
选择 admin 数据库
1 | use admin |
系统提示:
1 | switched to db admin |
现在,加入一个 root 用户,名为 admin, 密码也设置为 admin123
1 | db.createUser({user:"admin",pwd:"admin123",roles:[{role:"root",db:"admin"}]}) |
系统提示:
1 | Successfully added user: { |
OK! 大工告成,连续执行两个 exit 命令退出容器,然后就可以在本机或是其它机器上通过 mongo 客户端或是应用程序连接到 27017 端口来使用 mongodb 数据库了。
如果使用 mongo 客户端,则执行:
1 | mongo -u "admin" -p "admin123" <主机名或IP> --authenticationDatabase "admin" |