一、简介
- MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 基于分布式文件存储的数据库 高性能、可扩展、易部署、易使用,存储数据非常方便。
二、安装
1、拉取最新的镜像
docker pull mongo:latest
2、运行容器
先创建MongoDB数据主机挂载目录
mkdir /opt/mongo_data_docker
然后运行容器
docker run \
--restart=always \
-p 27017:27017 \
-v /opt/mongo_data_docker:/data/db \
-v /etc/localtime:/etc/localtime:ro \
--net mynet1 --ip 172.18.0.5 \
--name mongodb \
-d mongo \
--auth
参数 | 说明 |
---|---|
-p 27017:27017 | 将容器的27017端口映射到宿主机的27017端口 |
-v /opt/mongo_data_docker:/data/db | 将容器的/data/db目录挂载到宿主机的/opt/mongo_data_docker |
--name mongodb | 设置容器名称 |
--auth | 访问容器需要认证密码 |
-v /etc/localtime:/etc/localtime:ro | 同步容器与宿主机的系统时间 |
--net mynet1 --ip 172.18.0.5 | 指定容器ip |
-d | 后台运行 |
3、查看状态
docker ps #查看容器运行状态
docker logs <容器id> #查看容器运行日志
4、设置数据库信息
进入运行中的容器
docker exec -it mongodb mongo admin
设置admin用户及密码,并查看数据库信息
#切换数据库
use admin;
#创建用户
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
#验证用户
db.auth("admin", "123456");
#查看当前所有用户
show users;
#查看当前db的链接机器地址
db.getMongo();
#修复当前数据库
db.repairDatabase();
#查看当前使用的数据库
db.getName();
#db和getName方法是一样的效果,都可以查询当前使用的数据库
db;
#显示当前db状态
db.stats();
#当前db版本
db.version();
#查询所有数据库
show dbs;
#删除当前使用数据库
db.dropDatabase();
#从指定主机上克隆数据库,将指定机器上的数据库的数据复制到当前数据库
db.copyDatabase(“127.0.0.1”);
#从指定的机器上复制指定数据库数据到某个数据库
#将远程172.17.0.151服务器中db1数据库的数据复制到本机db2数据库中
db.copyDatabase("db1", "db2", "172.17.0.151");