docker-compose.yml
version: '3'
services:
mongo:
build: ./
restart: always
ports:
- 24017:27017 # 本地端口(可自定义):容器内默认端口(mongo设定为27017)
volumes:
- ./setup:/docker-entrypoint-initdb.d/ # 填写初始化脚本
- ./data/mongo/db:/data/db/
environment: # admin账号和密码
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
/setup/setup.js 初始化脚本
db = db.getSiblingDB('test'); // 创建一个名为"news"的DB
// 创建一个名为"news"的用户,设置密码和权限
db.createUser(
{
user: "root",
pwd: "test",
roles: [
{ role: "dbOwner", db: "test"}
]
}
);
Mongodb数据库的恢复
假设需要将路径为 /data/backup_data/mongdb_bk/ 的数据库恢复到mongodb
常用命令格式
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
--drop的意思是,先删除所有的记录,然后恢复。
恢复所有数据库到mongodb中
mongorestore /home/pan/mongodb/ #这里的路径是所有库的备份路径
还原指定的数据库
mongorestore -d tank /home/pan/mongodb/tank/ #tank这个数据库的备份路径