Last active
November 22, 2015 04:58
-
-
Save viztastic/8b1ac7dffc419bfe90ce to your computer and use it in GitHub Desktop.
Setting up mongo docker container
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
===================== | |
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