ls0398 发表于 2018-10-26 13:54:06

Docker使用supervisor启动MongoDB-docekr

  Docker的学习中不断的进行完善、不断的学习,把一些原有的方法进行优化。
  镜像下载地址:
  旧方案地址:如有不成熟没有上传
  新方案地址:https://github.com/aarongo/centos-mongodb-supervisor.git
  1.旧方案(尝试过多次用centos安装MongoDB,但都已失败告终,最终使用ubuntu安装MongoDB并且启动成功)
  Dockerfile:
FROM ubuntu:12.04  
MAINTAINERaaron "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 选项将主机中的目录挂载到容器中
  运行测试:

  此方法最大的弊端是在运行镜像的时候不能进行实时的管理MongoDB并且不能同时启动多个服务进程
  2.新方案(使用centos进行MongoDB的安装,并且进行ssh的配置,使镜像启动时应用supervisor同时启动ssh、MongoDB)
  Dockerfile:(以之前构建的centos-ssh-supervisor镜像为基础)
FROM aarongo/centos-ssh-supervisor:latest  
MAINTAINERaaron "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 &&\
  
      mvmongodb-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  运行测试:

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


页: [1]
查看完整版本: Docker使用supervisor启动MongoDB-docekr