• Docker搭建Mongodb


    1. 部署Mongodb

    1.1 获取docker镜像

    docker pull mongo

    1.2 创建mongodb容器

    docker run --name  my-mongo  -p 27017:27017  -d mongo --auth

    如果加需要验证就加--auth,不需要验证,就去掉。默认mongodb是不使用用户认证

    1.3 进入容器设置用户

    docker exec -it 容器id /bin/bash
    
    mongo
    use admin
    db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})   //创建用户,此用户创建成功,则后续操作都需要用户认证
    exit

    或者直接进入admin

    docker exec -it ly-mongo mongo admin
    
    db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})   //创建用户,此用户创建成功,则后续操作都需要用户认证
    exit
    

    1.4 测试

    mongo  宿主机ip/admin  -utest -p

    查看是否连接成功

    2.维护mongoDB

    2.1 指定MongoDB配置文件

    当我们需要修改配置文件时,我们只需要在宿主机上创建一个mongodb.conf文件,并将该文件所在的文件夹映射到容器的/data/configdb文件夹中,同时,在容器的启动命令中添加--configsvr参数即可。

    docker run --name some-mongo -d mongo --configsvr

    2.2 数据持久化

    在使用MongoDB的容器时,数据持久化有很多种方式,下面我们将描述一种推荐的方式:

    • 在宿主机上创建一个数据存储目录,并将其映射到容器中的目录中。
      这将数据库文件放在主机系统中的已知位置,并便于主机系统上的工具和应用程序访问文件。
      缺点是用户需要确保目录存在,例如,主机系统上的目录权限和其他安全机制配置正确。
      使用方法如下:

      在宿主机中创建一个目录,例如/my/own/datadir。
      如下命令启动容器:

    docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo:tag

    2.3 数据库授权

    默认情况下,Mongo数据库没有添加认证约束,也就是说任何人只要知道数据库服务的地址和端口,就可以正常访问数据库并对数据库进行增删改查。
    为了增强数据库的安全性,我们需要对数据库添加授权认证。
    添加方式如下:

    在启动数据库容器命令中添加--auth参数。

    docker run --name some-mongo -d mongo --auth

    使用exec命令进入命令行,并添加用户名和密码。

    docker exec -it some-mongo mongo admin
    db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

    2.4 数据库备份

    通常情况下,我们需要对数据库进行备份。
    首先,我们需要将本地磁盘的某个文件夹映射到容器中的备份文件夹中:

    docker run --name mongo -v /mnt/mongo/backup:/data/backup -d mongo

    数据库备份的方式如下:

    docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u test -p test1 -d dbname -o /data/backup/$var_test1.dat'

     

    3.实际使用步骤(推荐用法)

    执行如下命令拉取Mongo镜像:

    docker pull mongo
    创建Mongo专用的文件夹:
    
    cd /opt
    mkdir mongodb
    cd ./mongodb
    mkdir data
    mkdir backup
    执行如下命令启动MongoDB:
    
    docker run --name mongo -p 27017:27017 -v /opt/mongodb/data:/data/db -v /opt/mongodb/backup:/data/backup -d mongo --auth

    接下来,我们需要进入容器的命令行去创建用户名和密码:

    docker exec -it mongo mongo admin
    db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
    db.auth("admin","admin123456"); use test; db.createUser({user:"test",pwd:"123456",roles:["readWrite"]}); db.auth("test","123456")

    在运行一段时间以后,我们可以执行如下命令进行数据库备份:

    docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u jsmith -p password -d dbname -o /data/backup/$var_test1.dat'
     
     
     
  • 相关阅读:
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSNumber
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSDictionary
    [好程序员训练营]Objective-C学习笔记--基本数据结构NSArray
    [好程序员训练营]Objective-C学习笔记---基本数据结构NSString
    [好程序员训练营]Objective-C学习笔记---点语法
    [好程序员训练营]Objective-C学习笔记---构造函数和析构函数
    【好程序员训练营】Objective-C学习笔记----------成员变量和成员函数的封装
    【好程序员训练营】Objective-C学习笔记______类和对象的使用
    【好程序员训练营】Objective-C学习笔记(类的声明)NO1
    React Native 手工搭建环境 之iOS篇
  • 原文地址:https://www.cnblogs.com/panchanggui/p/12047579.html
Copyright © 2020-2023  润新知