Docker使用supervisor启动MongoDB

本文分享了两种使用Docker部署MongoDB的方法:一种是基于Ubuntu的基础安装;另一种则是在CentOS上通过supervisor同时管理MongoDB和SSH服务,解决了单一容器难以运行多个服务的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Docker的学习中不断的进行完善、不断的学习,把一些原有的方法进行优化。

镜像下载地址:

            旧方案地址:如有不成熟没有上传

            新方案地址:https://github.com/aarongo/centos-mongodb-supervisor.git

1.旧方案(尝试过多次用centos安装MongoDB,但都已失败告终,最终使用ubuntu安装MongoDB并且启动成功)

Dockerfile:

FROM ubuntu:12.04
MAINTAINER  aaron "aaron.docker@gmail.com"
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \
    echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' > /etc/apt/sources.list.d/mongodb.list && \
    apt-get update && \
    apt-get install -y mongodb-org && \
    rm -rf /var/lib/apt/lists/*
VOLUME ["/data/db"]
CMD ["mongod"]
EXPOSE 27017
EXPOSE 28017

运行方式:

docker run -d -p 27017:27017 -v localdir:/data/db --name mongodb aarongo/ubuntu-mongodb
#-v 选项将主机中的目录挂载到容器中

运行测试:

161313_p2qJ_2277525.jpg

此方法最大的弊端是在运行镜像的时候不能进行实时的管理MongoDB并且不能同时启动多个服务进程

2.新方案(使用centos进行MongoDB的安装,并且进行ssh的配置,使镜像启动时应用supervisor同时启动ssh、MongoDB)

Dockerfile:(以之前构建的centos-ssh-supervisor镜像为基础)

FROM aarongo/centos-ssh-supervisor:latest
MAINTAINER  aaron "aaron.docker@gmail.com"
#Install mongodb
RUN yum -y install wget && yum -y install tar &&\
        wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.4.tgz &&\
        tar xzvf mongodb-linux-x86_64-2.6.4.tgz &&\
        mv  mongodb-linux-x86_64-2.6.4/ /mongodb &&\
        mkdir -p /data/db
COPY supervisord.conf /etc/supervisord.conf
VOLUME ["/data/db"]
EXPOSE 22 27017 28017
CMD ["/usr/bin/supervisord"]

运行方式:

docker run -p 1026:22 -p 27017:27017 -p 28017:28017 -it -v hostdir:/data/db aarongo/centos-mongodb-supervisor

运行测试:

161313_p2qJ_2277525.jpg

此方法完美解决了单独容器不能启动多个服务的问题,并且可实现实时的对镜像进行管理

转载于:https://my.oschina.net/aarongo/blog/349061

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值