一、安装 docker。
请参考:
二、编写 dockerfile。
#在根目录下创建 dockerfile。
$ vi dockerfile
- #version 1.0
- from ubuntu
- #maintainer
- maintainer hdx
- #install
- run apt-get clean
- run apt-get update
- run apt-get install -y vim
- run apt-get install -y openssh-server
- run mkdir -p /var/run/sshd
- #open port 22 20001
- expose 22
- expose 20001
- #cmd ["/usr/sbin/sshd","-D"]
- run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
- run echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main">/etc/apt/sources.list.d/mongodb-org.list
- #install mongodb
- run apt-get update
- run apt-get install -y mongodb-org
- #create the mongodb data directory
- run mkdir -p /data/db
- entrypoint ["usr/bin/mongod"]
三、通过 dockerfile 生成一个 image 镜像。
$ sudo docker build -t ubuntu/mongo:latest -</dockerfile
查看 image 的生成情况。
$ sudo docker images
- 1 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- 2 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 服务。
未完待续。
来源: