mongodb:4.0
-
拉取镜像
docker pull mongo:4.0
-
查看拉取的镜像
docker images
-
创建待会儿需要挂载的文件夹
mkdir -p /opt/docker/mongodb_test/{data,log,conf}
-
编写配置文件
cd /opt/docker/mongodb_test/conf vim mongodb.conf
#端口 port=27017 #数据库文件存放目录 dbpath=/data/db/ #日志文件存放路径 logpath=/data/log/mongodb.log #使用追加方式写日志 logappend=true #以守护线程的方式运行,创建服务器进程 fork=true #最大同时连接数 maxConns=100 #不启用验证 #noauth=true #每次写入会记录一条操作日志 journal=true #存储引擎有mmapv1、wiredTiger、mongorocks storageEngine=wiredTiger #访问IP bind_ip=0.0.0.0 #用户验证 auth=true
-
创建容器,并挂载相应的目录
docker run -d -p 27018:27017 -v /opt/docker/mongodb_test/data:/data/db -v /opt/docker/mongodb_test/conf:/data/configdb -v /opt/docker/mongodb_test/log:/data/log --name mongo_test mongo:4.0 --auth
-
使用navicate测试
-
此时没有账号密码验证的mongodb已经可以连接,但无法使用
-
下面设置账号密码
-
进入容器
docker exec -it mongo_test mongo admin
-
进入admin数据库
use admin
-
创建超级权限root角色的用户,或者userAdminAnyDatabase 等角色权限比较大的用户,我创建的是拥有超级权限root角色的用户admin,密码是admin123
db.createUser({user:'admin',pwd:'admin123',roles:[{role:'root',db:'admin'}]})
-
认证登录db.auth(‘用户名’,‘密码’),打印1则代表认证通过
db.auth('admin','admin123')
-
退出容器
exit
-
-
navicate使用账号密码进行连接
-
可以操作数据库了