Skip to content

Instantly share code, notes, and snippets.

@viztastic
Last active November 22, 2015 04:58
Show Gist options
  • Save viztastic/8b1ac7dffc419bfe90ce to your computer and use it in GitHub Desktop.
Save viztastic/8b1ac7dffc419bfe90ce to your computer and use it in GitHub Desktop.
Setting up mongo docker container
=====================
Shortcut to stop, remove all containers and images
=====================
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && docker rmi $(docker images -q)
======================
Create independent directory containing Mongo setup:
======================
- Dockerfile
- mongo.conf
- supervisor.conf
======================
MONGO container Dockerfile:
======================
FROM ubuntu:14.04
RUN apt-get update -y && apt-get install -y wget
RUN apt-get install -y supervisor
RUN mkdir -p /var/log/supervisor
RUN mkdir -p /data
RUN mkdir -p /data/logs
RUN cd /opt && wget -nv http://fastdl.mongodb.org/linux/mongodblinux-x86_64-3.0.7.tgz
RUN cd /opt && tar -xvzf mongodb-linux-x86_64-3.0.7.tgz && rm mongodb-linux-x86_64-3.0.7.tgz
ADD mongo.conf /opt/mongodb-linux-x86_64-3.0.7/mongo.conf
ADD supervisor.conf /etc/supervisor/conf.d/supervisor.conf
EXPOSE 27017
CMD "/usr/bin/supervisord"
======================
MONGO mongo.conf
======================
logpath = /logs/mongo.log
logappend = true
dbpath = /data/mongo
smallfiles = true
======================
MONGO supervisor.conf
======================
[supervisord]
nodaemon=true
[program:mongo]
command=/opt/mongodb-linux-x86_64-3.0.7/bin/mongod --config
/opt/mongodb-linux-x86_64-3.0.7/mongo.conf
======================
BUILD the container
=======================
Pop into the directory and run:
$ docker build -t viztastic/mongo:0.1 .
If you can't docker without sudo, then:
$ sudo groupadd docker
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart
(also a logout and login)
=============
Running the container:
=============
$ mkdir -p /mnt/data/mongo
$ mkdir -p /mnt/data/logs
$ docker run -d -v /mnt/data:/data -v /mnt/data/logs:/data/logs -p 27017:27017 viztastic/mongo:0.1
================
User Docker-bash to login to containers easily:
================
// Install
$ curl --fail -L -O https://github.com/phusion/baseimage-docker/archive/master.tar.gz && \
tar xzf master.tar.gz && \
sudo ./baseimage-docker-master/install-tools.sh
// Use
$ docker ps
/// get ID of container
$ docker-bash [CONTAINER_ID]
# supervisorctl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment