简单的docker搭建mongo集群(本地)

330 阅读1分钟

Mongodb docker 容器化集群搭建

一,主机文件挂载方式

1.使用配置文件加载的方式将mongodb需要的配置文件挂载到相应的目录下.

参考 hub.docker.com/_/mongo

创建三个容器

主要命令:

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相关的信息.