MongoDB安裝linux
# 下載Mongo $ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.7.tgz # 解壓Mongo壓縮包 $ tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.0.7.tgz # 重命名一下Mongo的安裝目錄 $ mv mongodb-linux-x86_64-ubuntu1404-3.0.7/ mongodb-3.0.7 # (不推薦下面的路徑直接創建在Docker虛擬機上,推薦使用volume掛載方式) # 在宿主機上建立一個數據庫目錄存儲Mongo的數據文件 $ sudo mkdir -p /docker/mongo/data # 在宿主機上建立一個日誌目錄存儲Mongo的Log文件 $ sudo mkdir -p /docker/mongo/log # 在{MONGO_HOME}下建立一個Mongo啓動的配置文件 $ sudo touch mongodb.conf ############# mongodb.conf ################ port=30000 dbpath=/mongo/data logpath=/mongo/log/mongodb.log logappend=true ############# mongodb.conf ################ # 啓動mongo時,指定config配置文件 $ sudo ./mongod -f ../mongodb.conf # 參考: https://docs.mongodb.org/master/tutorial/install-mongodb-on-linux/ http://my.oschina.net/aarongo/blog/349061
Dockerfile文件git
############################################ # version : birdben/mongodb:v1 # desc : 當前版本安裝的mongodb ############################################ # 設置繼承自咱們建立的 tools 鏡像 FROM birdben/tools:v1 # 下面是一些建立者的基本信息 MAINTAINER birdben (191654006@163.com) # 設置環境變量,全部操做都是非交互式的 ENV DEBIAN_FRONTEND noninteractive # 添加 supervisord 的配置文件,並複製配置文件到對應目錄下面。(supervisord.conf文件和Dockerfile文件在同一路徑) COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf # 設置 mongo 的環境變量,若讀者有其餘的環境變量須要設置,也能夠在這裏添加。 ENV MONGO_HOME /software/mongodb-3.0.7 ENV LC_ALL C # 複製 mongodb-3.0.7 文件到鏡像中(mongodb-3.0.7 文件夾要和Dockerfile文件在同一路徑) ADD mongodb-3.0.7 /software/mongodb-3.0.7 # VOLUME 選項是將本地的目錄掛在到容器中 此處要注意:當你運行-v <hostdir>:<Containerdir> 時要確保目錄內容相同不然會出現數據丟失 # 對應關係以下 # mongo:/docker/mongodb VOLUME ["/mongodb"] # 容器須要開放Mongo 30000端口 EXPOSE 30000 # 執行supervisord來同時執行多個命令,使用 supervisord 的可執行路徑啓動服務。 CMD ["/usr/bin/supervisord"]
Dockerfile源文件連接:github
https://github.com/birdben/birdDocker/blob/master/mongo/Dockerfilemongodb
supervisor配置文件內容docker
# 配置文件包含目錄和進程 # 第一段 supervsord 配置軟件自己,使用 nodaemon 參數來運行。 # 第二段包含要控制的 2 個服務。每一段包含一個服務的目錄和啓動這個服務的命令。 [supervisord] nodaemon=true [program:sshd] command=/usr/sbin/sshd -D [program:mongo] # 注意這裏指定的mongodb.conf文件路徑,必須是絕對路徑 command=/software/mongodb-3.0.7/bin/mongod -f /mongodb/mongodb.conf
控制檯終端數據庫
# 構建鏡像 $ docker build -t="birdben/mongodb:v1" . # 執行已經構件好的鏡像 $ docker run -p 9999:22 -p 30000:30000 -t -i -v /docker/mongodb:/mongodb "birdben/mongodb:v1" # 能夠ssh遠程登陸,而後查看mongo的log是否有變化,而後就大功告成了 $ ssh root@10.211.55.4 -p 9999 $ cd /mongo/log $ tailf mongodb.log
遇到問題ubuntu
# 若是遇到mongo啓動問題Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly. # 須要配置以下的環境變量 export LC_ALL=C
參考文章:app