klivan / docker-mongodb-replicaset

docker-mongodb-replicaset

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Info

This file describes how to run Mongo DB Replica Set on Docker. We made an assumption that Docker IP address on host machine is 172.17.42.1 (and in most cases it's true). You can verify it by running ifconfig docker0 and checking ip address.

We're starting 3 docker containers with MongoDB, they are available on ports 27017, 27018 and 27019.

Instructions

Clone this repository

$ git clone git@github.com:klivan/docker-mongodb-replicaset.git

Build docker image from Dockerfile

$ cd docker-mongodb-replicaset
$ docker build -t mongo .

Start docker containers with replica set

$ ./start.sh

Run one more Mongo docker container with bash

$ docker run -i -t mongo bash

And run script for Replica Set initialization:

$ ./replicaSet.sh

If you see an error during this step - please wait few minutes - most probably your docker containers haven't started yet. You'll see something like this:

root@e4216ca7766f:/# ./replicaSet.sh
MongoDB shell version: 2.6.8
connecting to: 172.17.42.1:27017/test
{
	"info" : "Config now saved locally.  Should come online in about a minute.",
	"ok" : 1
}
bye

You can verify that eveything works by running mongo client and checking rs.status():

root@29849b0f568c:/# mongo 172.17.42.1:27017
MongoDB shell version: 2.6.8
connecting to: 172.17.42.1:27017/test
rs0:PRIMARY> rs.status()
{
	"set" : "rs0",
	"date" : ISODate("2015-02-26T04:51:48Z"),
	"myState" : 1,
	"members" : [
		{
			"_id" : 0,
			"name" : "172.17.42.1:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 448,
			"optime" : Timestamp(1424925935, 1),
			"optimeDate" : ISODate("2015-02-26T04:45:35Z"),
			"electionTime" : Timestamp(1424925946, 1),
			"electionDate" : ISODate("2015-02-26T04:45:46Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "172.17.42.1:27018",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 370,
			"optime" : Timestamp(1424925935, 1),
			"optimeDate" : ISODate("2015-02-26T04:45:35Z"),
			"lastHeartbeat" : ISODate("2015-02-26T04:51:47Z"),
			"lastHeartbeatRecv" : ISODate("2015-02-26T04:51:47Z"),
			"pingMs" : 0,
			"syncingTo" : "172.17.42.1:27017"
		},
		{
			"_id" : 2,
			"name" : "172.17.42.1:27019",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 370,
			"optime" : Timestamp(1424925935, 1),
			"optimeDate" : ISODate("2015-02-26T04:45:35Z"),
			"lastHeartbeat" : ISODate("2015-02-26T04:51:47Z"),
			"lastHeartbeatRecv" : ISODate("2015-02-26T04:51:47Z"),
			"pingMs" : 1,
			"syncingTo" : "172.17.42.1:27017"
		}
	],
	"ok" : 1
}
rs0:PRIMARY>

About

docker-mongodb-replicaset


Languages

Language:JavaScript 53.1%Language:Shell 46.9%