# 安装
docker-compose 安装 mongodb
# docker-compose.yml
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
ports:
- 27017:27017
volumes:
- /home/mongotest:/data/db
# mongo-express:
# image: mongo-express
# restart: always
# ports:
# - 8081:8081
# environment:
# ME_CONFIG_MONGODB_ADMINUSERNAME: root
# ME_CONFIG_MONGODB_ADMINPASSWORD: example
创建一个目录,进入目录,创建 docker-compose.yml 文件,写入上面的内容,然后保存 推出后 执行 命令 docker-compose up -d
即可安装完成
cd /home/
mkdir mongotest
cd ./mongotest
vi docker-compose.yml // 粘贴上面的 docker-compose.yml 里的内容
docker-compose up -d
# 查看 已创建运行的容器
docker ps // 查看 在运行的 docker 容器
docker exec -it 容器名称 镜像名称
例如:
docker exec -it mongotest_mongo_1 mongo
mongo 登录 账号
use admin // 切换到管理员所在的数据库上
db.auth(用户名,用户密码) // 登录 账户
show dbs // 查看所有的 数据库db
use db名称 // 创建或切换 到 某 db
db.createUser({user:"test",pwd:"123456",roles:[{role:"dbOwner",db:"testdb"}]})
// 创建 一个 角色为 testdb数据库 的 dbOwner 的账户
# mongodb 的备份与 恢复
docker exec -it 容器名称 mongodump -h localhost -u root -p example -o /temp/test
进入 mongodb容器 备份 容器用超级管理员的权限将所有的数据库备份到 temp/test 目录
- 备份工具: mongodunp
mongodump -h host -d dbname -o directory
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存储路径
Eg: # mongodump -d test -o /data/
如果像导出所有数据库,可以去掉 -d
-h: mongodb 所在服务器地址,如 127.0.0.1,也可以指定端口号 127.0.0.1:27017
-d: 需要备份的数据库名称,如: db_test
-o: 备份的数据存放位置,如: ~\dump,当然该目录需要提前建立,在备份完成后,系统自动在 dump 目录下建一个 db_test 目录,这个目录里面存放该数据库实例的备份数据
- 恢复工具 mongorestore
概念:
mongorestore 是 Mongodb 从备份中恢复数据的工具,它主要用来获取 mongodump 的输出结果,并将备份的数据插入到运行的 Mongodb 中。
mongorestore -h host -d dbname --directoryperdb dbdirectory
Eg: # mongorestore --host=10.0.2.105 --port=21017 --db zhpt --dir=zhpt/
参数说明:
-h: mongodb 所在服务器地址
-d: 需要恢复的数据库名称,如: db_test ,当然这个名称可以不同于备份的时候,比如 new_db
--directoryperdb:备份数据文件所在位置,如:~\dump\db_test(这里之所以要加db_test子目录,从mongoretore的help中的--directoryperdb,可以读出“每一个db在一个单独的目录”。)
← docker 常用命令 核心概念 →