一、下载mongodb镜像
docker pull mongo
默认下载的是latest版本,以上命令等于
docker pull mongo:latest
也可以下载指定版本
docker pull mongo:版本号
例如:docker pull mongo:3.2
二、创建mongodb容器
docker run --name dev-mongo -p 27017:27018 -d mongo:latest --auth --storageEngine wiredTiger
参数说明:
- --name 指定容器的名称
- -p 宿主机27017端口映射到容器暴露的27018端口
- -d 容器在后台运行,并打印容器id
- mongo:latest 指定镜像
- --auth 打开mongdb的权限验证
- --storageEngine 指定mongodb的存储引擎为wiredTiger
三、连接容器
docker exec -it dev-mongo /bin/bash mongo admin
参数说明:
- -it 分配一个终端,来操作容器
- /bin/bash 指定终端为bash
- dev-mongo 上一步中指定的容器名
- mongo admin 进去mongo命令行,并连接admin数据库
四、创建管理员用户
在mongo shell命令行中:
> db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
Successfully added user: {
"user" : "jsmith",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
//验证是否添加成功
> db.auth("jsmith","some-initial-password")
> 1
五、创建普通用户
//使用管理员账号进入mongo
docker exec -it dev-mongo mongo admin -u jsmith -p some-initial-password
//创建dev数据库
> use dev;
//向dev数据库添加管理用户
> db.createUser({ user: 'admin-dev', pwd: 'admin-dev-password', roles: [ { role: "readWrite", db: "dev" } ] });
六、远程连接dev数据库,验证
mongo ip地址:27017/dev -u admin-dev -p admin-dev-password
进入mongo shell命令行,连接成功