一、查看可用的 MongoDB版本
1、docker官网查看MongoDB镜像地址及版本信息:https://hub.docker.com/_/mongo?tab=tags
每个版本后都有拉取mongo镜像的命令。
2、用 docker search mongo 命令来查看可用版本
二、拉取 MongoDB 镜像
我们直接拉去最新的MongoDB镜像。
docker pull mongo:latest
三、查看本地镜像
docker images
四、运行容器
使用以下命令来运行 MongoDB 容器:
docker run -itd --name mongo01 -p 27017:27017 mongo:latest --auth
参数说明:
- --name mongo01:MongoDB容器指定一个名称
- -p 27017:27017 :指定端口映射,映射容器服务的 27017 端口到宿主机的 27017 端口(主机「宿主」端口:容器端口),主机「宿主」可以直接通过宿主ip:27017 访问到 MongoDB 的服务。
- --auth:需要密码才能访问容器服务
五、安装成功
通过 docker ps 命令查看是否安装成功:
六、配置账户密码
1、按照菜鸟教程创建帐号,之后在使用该帐号时显示权限不足
由于此数据库为个人使用,所以直接使用超级管理员账户,需要超级管理员账户可直接查看第二步。
以admin进入mongodb
docker exec -it mongo01 mongo admin #mongo01也可以改为CONTAINER_ID
以下为个人安装mongodb时,按照菜鸟教程所创建,之后在navicate中使用该帐号时显示权限不足。
创建一个名为 admin,密码为 123456 的用户
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
试使用上面创建的用户信息进行连接
db.auth('admin', '123456')
退出输入:exit即可
2、创建超级管理员帐号
mongodb数据库角色:
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root
以admin进入mongodb
docker exec -it mongo01 mongo admin #mongo01也可以改为CONTAINER_ID
创建一个名为root,密码为root的用户,权限为超级管理员
db.createUser({ user:'root',pwd:'root',roles:[ { role:'root', db: 'admin'}]});
若创建账户时报权限错误时(下方为错误截图),这个主要的原因是没有切库,执行 use admin 后再执行添加用户命令即可。
七、navicat链接安装好的mongodb
Mac安装navicat记录可查看此链接:https://blog.csdn.net/qq_34497272/article/details/104519853
在Mac主机通过navicat链接虚拟主机安装好的mongodb,由于navicat安装的新版,支持链接mongodb
注:显示链接成功,但是进去之后不显示任何数据库。
解决方案:点击查看,选择显示隐藏的项目,然后重新打开mongodb即可看到隐藏的数据库。
八、重启虚拟机之后发现mongodb未启动
通过docker ps 命令查询不到刚才安装的名字为mongo01的数据库服务。
docker ps #查看运行中的容器
docker ps -a #查看所有容器
九、当镜像实例已经存在时,重新启动镜像
docker restart 容器名称/容器ID #重启
docker stop 容器名称/容器ID #停止
docker start 容器名称/容器ID #启动
docker rm 容器名称/容器ID #删除
例如重启mongo01的镜像:docker restart 0e5d90f13783 或者 docker restart mongo01