Docker的學習中不斷的進行完善、不斷的學習,把一些原有的方法進行優(yōu)化。
成都創(chuàng)新互聯(lián)公司是專業(yè)的彌渡網(wǎng)站建設公司,彌渡接單;提供成都網(wǎng)站設計、成都網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行彌渡網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
鏡像下載地址:
舊方案地址:如有不成熟沒有上傳
新方案地址: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 選項將主機中的目錄掛載到容器中
運行測試:
此方法最大的弊端是在運行鏡像的時候不能進行實時的管理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
運行測試:
此方法完美解決了單獨容器不能啟動多個服務的問題,并且可實現(xiàn)實時的對鏡像進行管理