专注于快乐的事情

Docker下MongoDB复制集

安装过程

安装

docker run -p27018:27017--name mongo0 -d mongo:3.6.2-jessie --replSet "rs0" --bind_ip_all
docker run --name mongo1 -d mongo:3.6.2-jessie --replSet "rs0" --bind_ip_all
docker run --name mongo2 -d mongo:3.6.2-jessie --replSet "rs0" --bind_ip_all

查询ip地址docker inspect mongo0 | grep IPAddress,可知地址如下

mongo0: 172.17.0.2:27017
mongo1: 172.17.0.3:27017
mongo2: 172.17.0.4:27017

/data/db
/usr/bin/mongod

启动和关闭

启动mongo

关闭
进入
use admin
db.shutdownServer();

复制测试

在主节点中插入数据

进入到172.17.0.2容器
mongo mongodb://172.17.0.2:27017,172.17.0.3:27017,172.17.0.4:27017/test?replicaSet=rs0

在rs0:PRIMARY>下执行
db.order.insert({price: 1})
WriteResult({ “nInserted” : 1 })

从库进行读操作

mongo --host 172.17.0.3
在rs0:SECONDARY> 下执行

db.getMongo().setSlaveOk()允许当前连接对从库进行读操作
进行查询
db.order.find()
{ “_id” : ObjectId(“5a7c5473b74e8cf1bb890979”), “price” : 1 }

查询状态

rs.status()查询

"_id" : 2,
"name" : "172.17.0.4:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",

重新选举测试

关闭172.17.0.4
docker stop mongo2

重新查询,这时主节点进行了变更。

常用命令

查询库

在主库环境下
show dbs;

创建和切换库

use mydb;

or mongo mydb;

参考

https://www.cnblogs.com/jay54520/p/8433515.html#%E5%A4%8D%E5%88%B6%E7%89%B9%E6%80%A7

http://blog.51cto.com/5063935/2074332

评论系统未开启,无法评论!