mongo docker-compose 编排过程

7 min read

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这个数据库的备份路径