linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux数据库 >

Docker搭建MongoDB

时间:2019-01-04  来源:未知  作者:admin666

1. Docker搭建Mongo死亡飞车2050db

1.1 获取docker镜像

docker pull mongo死亡飞车2050

Docker搭建Mongo<a href=死亡飞车2050DB" align="center" />

1.2 创建mongo死亡飞车2050db容器

docker run --name  my-mongo死亡飞车2050  -p 27017:27017  -d mongo死亡飞车2050 --auth

如果加需要验证就加--auth,不需要验证,就去掉。默认mongo死亡飞车2050db是不使用用户认证

1.3 进入容器设置用户

docker exec -it 容器id /bin/bash

mongo死亡飞车2050
use admin
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})   //创建用户,此用户创建成功,则后续操作都需要用户认证
exit

或者直接进入admin

docker exec -it ly-mongo死亡飞车2050 mongo死亡飞车2050 admin

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

1.4 测试

mongo死亡飞车2050  宿主机ip/admin  -utest -p

查看是否连接成功

2.维护mongo死亡飞车2050DB

2.1 指定Mongo死亡飞车2050DB配置文件

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

docker run --name some-mongo死亡飞车2050 -d mongo死亡飞车2050 --configsvr

2.2 数据持久化

在使用Mongo死亡飞车2050DB的容器时,数据持久化有很多种方式,下面我们将描述一种推荐的方式:

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

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

docker run --name some-mongo死亡飞车2050 -v /my/own/datadir:/data/db -d mongo死亡飞车2050:tag

2.3 数据库授权

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

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

docker run --name some-mongo死亡飞车2050 -d mongo死亡飞车2050 --auth

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

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

2.4 数据库备份

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

docker run --name mongo死亡飞车2050 -v /mnt/mongo死亡飞车2050/backup:/data/backup -d mongo死亡飞车2050

数据库备份的方式如下:

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

3.推荐用法

执行如下命令拉取Mongo死亡飞车2050镜像:

docker pull mongo死亡飞车2050
创建Mongo死亡飞车2050专用的文件夹:

cd /mnt
mkdir mongo死亡飞车2050db
cd ./mongo死亡飞车2050db
mkdir data
mkdir backup
执行如下命令启动Mongo死亡飞车2050DB:

docker run --name mongo死亡飞车2050 -p 27017:27017 -v /mnt/mongo死亡飞车2050db/data:/data/db -v /mnt/mongo死亡飞车2050db/backup:/data/backup -d mongo死亡飞车2050 --auth

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

docker exec -it mongo死亡飞车2050 mongo死亡飞车2050 admin
db.createUser({ user: 'jsmith', pwd: 'password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
use test;
db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]});
db.auth("testuser","te手机棋牌论坛stpass")

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

docker exec mongo死亡飞车2050 sh -c 'exec var=`date +%Y%m%d%H%M` &amp;&amp; mongo死亡飞车2050dump -h localhost --port 27017 -u jsmith -p password -d dbname -o /data/backup/$var_test1.dat'

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

友情链接