一、安装MongoDB
1、查看当前可用版本
docker search mongo #通过该命令查看可用的MongoDB版本
2、获取最新的MongoDB镜像
docker pull mongo
3、查看本地是否已安装了mongo
docker images
4、安装完成以后,在宿主机上创建需要挂载的文件,并使用以下命令运行mongo容器
创建文件夹:mkdir -p /docker-software/mongodb/{data,logs}
(注:在准备挂载的目录下创建并修改目录权限)
chmod -R 777 /docker-software/mongodb
5、运行容器
docker run --name mongodb -p 27017:27017 -v /docker-software/mongodb/data:/data/db -v /docker-software/mongodb/log:/data/log -d mongo --auth
参数说明:
mongo mongo镜像名 也可使用镜像id
-d 后台运行容器
-name mongodb 运行容器名
-v /docker-software/mongodb/data:/data/db -v /docker-software/mongodb/log:/data/log 挂载目录
-p 27017:27017:将27017映射到外部端口27017 将容器的27017端口映射到主机的27017端口,27017是和宿主机的通信接口,所有docker内部容器的连接使用27017接口,集群配置需连接容器内部27017端口,故最好保持前后端口一致
–auth 需要验证就加,不需要验证,就去掉。默认mongodb是不使用用户认证
通过以下命令查看是否运行成功
docker ps
上图为运行成功。
6.查看mongodb日志
docker logs mongodb
7、mongodb随 docker 自启动(可加可不加)
docker update mongodb --restart=always
注意:这里的 mongodb 是容器的名字,不是镜像的名字。
8、设置数据库的用户名和密码
# 创建mongo容器后,进入容器
docker exec -it mongodb /bin/bash
# 进入mongo shell
mongo 6.0版本之前使用
mongosh 6.0版本之后使用
注:如果出现:bash: mongo: command not found
这是因为MongoDB 6.0全面弃用了mongo而使用mongosh。
mongod --version 查看mongo版本
# 进入admin数据库
use admin
# 创建超级权限root角色的用户,或者userAdminAnyDatabase 等角色权限比较大的用户,我创建的是拥有超级权限root角色的用户root
# 用户名:root,密码:root,角色:root,数据库:admin
db.createUser({user:'root',pwd:'mongodb123456',roles:[{role:'root',db:'admin'}]})
6.0之后创建成功返回的成功标识为:{ok:1}
# 认证登录db.auth('用户名','密码'),打印1则代表认证通过
db.auth('root','mongodb123456')
按Ctrl+D或输入exit退出。
9、客户端连接mongodb
二、创建普通用户、密码和数据库
创建普通用户、密码和数据库
以 admin 用户身份进入mongo :
docker exec -it mongodb mongo admin
创建 用户、密码和数据库:
db.createUser({ user: 'web', pwd: 'web123456', roles: [ { role: "readWrite", db: "web" } ] });
对 web用户 进行身份认证:
use web;
db.auth("web","web123456");
创建成功后可退出 :exit
问题:解决:bash: vim: command not found
docker 容器不识别 vi / vim 、docker 容器中安装 vim
#更新源
apt-get update
#安装
apt-get install vim
***最后
如果使用云服务记得开放端口***