首页 > 代码库 > [原创]在Docker上部署mongodb分片副本集群。

[原创]在Docker上部署mongodb分片副本集群。

一、安装docker。

请参考:http://www.cnblogs.com/hehexiaoxia/p/6150584.html

二、编写dockerfile。

#在根目录下创建dockerfile。

$ vi dockerfile

#version 1.0from ubuntu#maintainer maintainer hdx#install run apt-get cleanrun apt-get updaterun apt-get install -y vimrun apt-get install -y openssh-serverrun mkdir -p /var/run/sshd#open port 22 20001expose 22expose 20001#cmd ["/usr/sbin/sshd","-D"]run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927run echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main">/etc/apt/sources.list.d/mongodb-org.list#install mongodbrun apt-get updaterun apt-get install -y mongodb-org#create the mongodb data directoryrun mkdir -p /data/dbentrypoint ["usr/bin/mongod"]

三、通过dockerfile生成一个image镜像。

$ sudo docker build -t  ubuntu/mongo:latest -</dockerfile

查看image的生成情况。

$ sudo docker images 

1 REPOSITORY      TAG       IMAGE ID        CREATED     VIRTUAL SIZE2 ubuntu/mongo  latest   522eeeae18e5    54 minutes ago      

发现image已经生成,可以通过image来创建容器了。

四、通过image镜像构建mongo集群。

1、创建2个shardsvr,每个shardsvr包含3个副本,其中1个主节点,1个从节点,1个仲裁节点。

-d 表示后台运行

-p 绑定host主机与docker的端口,第一个20001代表host主机端口,第二个代表对应的docker端口,绑定后可以通过调用host主机ip:port来访问docker的mongodb。

$ sudo docker run -d -p 20001:20001 --name rs1_container1 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs1

$ sudo docker run -d -p 20002:20001 --name rs1_container2 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs1
$ sudo docker run -d -p 20003:20001 --name rs1_container3 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs1

$ sudo docker run -d -p 20011:20001 --name rs2_container1 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs2
$ sudo docker run -d -p 20012:20001 --name rs2_container2 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs2
$ sudo docker run -d -p 20013:20001 --name rs2_container3 ubuntu/mongo:lastest --shardsvr --port 20001 --replSet rs2

2、创建2个configsvr。
$ sudo docker run -d -p 21001:20001 --name config_container1 ubuntu/mongo:lastest --configsvr --port 20001
$ sudo docker run -d -p 21002:20001 --name config_container2 ubuntu/mongo:lastest --configsvr --port 20001 

3、启动2个mongos服务。

 

未完待续。

 

[原创]在Docker上部署mongodb分片副本集群。