【Mongo】数据库Docker启动
一、镜像-容器启动 Mongodb
1、拉取镜像
docker pull mongo
2、创建mongodb容器
2.1 创建挂载文件夹
mkdir mongodb
cd ./mongdb
mkdir data
mkdir backup
2.2 创建容器
docker run
--name mongo \
-p 27017:27017 \
-v /mnt/mongodb/data:/data/db \
-v /mnt/mongodb/backup:/data/backup \
-id mongo \
--auth
–auth 表示mongodb需要进行用户验证
2.3 创建用户名密码
# 进入容器
docker exec -it mongo bash
mongo admin
# 创建root权限用户
db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "root", db: "admin" } ] });
# 创建其他权限用户
db.createUser({user:"test",pwd:"test",roles:["readWrite"]});
# 用户登录
db.auth('test', 'test')
# root用户登录
use admin;
db.auth('root', '123456')
2.4 数据库备份
docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u root -p 123456 --authenticationDatabase admin -d dbname -o /data/backup/$var_test1.dat'
注意参数:
-h 数据库ip
–port 数据库端口号
-u 数据库用户
-p 数据库密码
-d 备份数据库
-o 备份输出内容
2.5 数据库还原
docker exec mongo sh -c 'mongorestore -u root -p 123456 --authenticationDatabase admin -d dbname --dir /data/backup/xxx'
注意参数:
–dir 还原数据库文件夹
二、经典启动脚本
1、启动+Restore
mongo_startup.sh
#!/bin/bash
docker run \
-id \
--net=host \
--name mongodb \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
-v $PWD/data:/data/db \
-v $PWD/backup:/data/backup \
mongo:latest \
--auth
sleep 5
docker exec mongodb sh -c 'mongorestore -u root -p 123456 --authenticationDatabase admin -d test --dir /data/backup/test'
三、Mongodb数据库操作
1、删除数据库
mongo admin;
show dbs;
db.auth('账号', '密码')
use test; // test是指数据库
db.dropDatabase(); // 删除数据库
ctrl+c; //退出mongo环境