时间:2021-07-01 10:21:17 帮助过:20人阅读
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的。支持类似于面向对象的查询语言,几
【编者的话】MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的。支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本文介绍了如何使用Docker搭建MongoDB集群。
本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下:
首先要准备三个运行的Docker服务器,这意味着你要准备一个安装了Docker的本地Vagrant Box虚拟机(系统可以使用CoreOS)或者使用AWS或者其它的你喜欢的方式。
步骤 Step1你要拿到3台Docker服务器的IP地址,并且将下面给出的IP地址配置到所有的服务器上面,每一台服务器都要执行如下命令(记得要替换掉IP地址哦):
root@node root@node理想情况下你并不需要这么做,这些IP都是可以通过DNS自动配置好的。但是这样会更加简单,,毕竟这只是一次安装测试。
Step2为每个节点创建密钥文件。在其中某一台服务器上面执行如下的命令,然后把密钥文件复制到其余两个服务器的同样的位置。
在这个教程中,我将把所有的东西都放在“/home/core”文件夹中。
core root@node core root@node keyfile root@node keyfile root@node这个密钥文件的所有者被设置成id为“999”的用户了,因为在MongoDB的Docker容器中,这个用户需要有操作密钥文件的权限。
Step3启动node1(即第一台Docker服务器)的MongoDB容器。它会启动一个没有身份验证机制的容器,所以我们要设置一个用户。
name mongo \ db \ keyfile \ \ \现在创建一个admin用户。我们可以连接到刚刚启动的mongoDB容器,并进入一个交互式的shell环境.
这时候,我们就进到MongoDB的Docker容器里面了,然后我们要打开一个mongo shell环境:
上面的命令可以打开mongo shell环境。执行后你会看到这样的输出:
connecting to: test see http http切换到admin用户:
admin switched to db admin创建一个新的site admin 用户
user pwd roles创建成功的话你会看到如下的成功信息:
{ } ]创建一个root用户:
user pwd roles你会看到如下的成功信息:
{ } ]我们已经创建好了我们以后要使用的几个用户,现在我们不会退出交互式shell环境(mongo和Docker容器的环境)。
bye root@node1 Step4停止第一个MongoDB实例:
Step5这次使用密钥文件启动第一台MongoDB实例(还是在node1上面操作的)。
root@node1:/# docker rm mongo root@node1:/# docker run \ --name mongo \ db \ keyfile \ \ \ \ \ \ --smallfiles \ keyfile \注意:
连接到副本集上并且安装配置好它。这还是在node1上面进行的。我们要开启另外一个新的交互式shell环境进入mongo容器,同时开启一个mongo shell环境:
bash root@node1:/# mongo切换到admin用户下:
admin switched to db admin因为我们已经设置了一个密码,所以这次我们不得不做身份验证。我们把密码设置为:password。
现在我们可以开启副本集:
Step7验证已经初始化的副本集的配置:
> rs0 r { } ]在其余的两个节点启动MongoDB。