Docker使用supervisor啓動MongoDB

  Docker的學習中不斷的進行完善、不斷的學習,把一些原有的方法進行優化。

鏡像下載地址:

            舊方案地址:如有不成熟沒有上傳

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

1.舊方案(嘗試過多次用centos安裝MongoDB,但都已失敗告終,最終使用ubuntu安裝MongoDB並且啓動成功)

Dockerfile:

FROM ubuntu:12.04
MAINTAINER  aaron "[email protected]"
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 "[email protected]"
#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

此方法完美解決了單獨容器不能啓動多個服務的問題,並且可實現實時的對鏡像進行管理


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章