Mongodb docker 容器化集群搭建
一,主机文件挂载方式
1.使用配置文件加载的方式将mongodb需要的配置文件挂载到相应的目录下.
创建三个容器
主要命令:
docker run --name mongo_27017 -p 27017:27019 -v /Users/zhengdong/workspace/mongo_docker/:/etc/mongo mongo --config /etc/mongo/mongo_27017.conf
docker run --name mongo_27018 -p 27018:27019 -v /Users/zhengdong/workspace/mongo_docker/:/etc/mongo mongo --config /etc/mongo/mongo_27018.conf
docker run --name mongo_27019 -p 27019:27019 -v /Users/zhengdong/workspace/mongo_docker/:/etc/mongo mongo --config /etc/mongo/mongo_27019.conf
--name 指定容器名称
-p 指定容器端口映射到外部的端口 内:外
--config 接本机配置文件绝对路径
-v 用于挂载docker存储目录到本机目录,方便 --config 加载挂载到容器中的配置文件
2.进入任一容器配置复制集
使用诸如 docker exec -it mongo_27018 /bin/bash 进入该容器
再使用如 mongo --port 27018 进入 mongo shell
- 定义一个cfg变量
var cfg ={"_id":"lagouCluster",
"protocolVersion" : 1,
"members":[
{"_id":1,"host":"172.17.0.2:27017","priority":10},
{"_id":2,"host":"172.17.0.3:27018"}
{"_id":3,"host":"172.17.0.4:27019"}
] }
其中的两个host的ip为docker内部的ip(因为这几个容器需要互相访问到).
可使用 docker inspect 查看容器的ip和其他信息.
比如,我这里使用 docker inspect mongo_27018 | grep IPAddress
得到结果,名称为mongo_27018的容器内部ip地址为 172.17.0.3
- 初始化复制集
rs.initiate(cfg)
rs.status()
可以看到关于primary和secondary相关的信息.