製作mongodb的Docker映象檔案
在上一章《Docker下,極速體驗mongodb》中,我們快速搭建了mongodb並在控制檯做了基本的體驗,當時用的映象是官方釋出在hub.docker.com上的映象,今天我們來嘗試一下自己製作一個mongodb的Docker映象,在製作的過程中順便了解如何在linux下安裝mongodb。
下載mongodb安裝檔案
下載後找個目錄解壓此檔案,得到資料夾mongodb-linux-x86_64-ubuntu1604-3.4.9;
建立Dockerfile檔案
新建一個Dockerfile檔案,位置和mongodb-linux-x86_64-ubuntu1604-3.4.9在同一個目錄下,Dockerfile的內容如下所示,每一行的詳細功能請看註釋:
# Docker image of hbase cluster
# VERSION 0.0.1
# Author: bolingcavalry
#基礎映象使用ubuntu16.04
FROM ubuntu:16.04
#作者
MAINTAINER BolingCavalry <[email protected]>
#定義工作目錄
ENV WORK_PATH /usr/local/
#定義mongodb資料夾名稱
ENV MONGODB_PACKAGE_NAME mongodb-linux-x86_64-ubuntu1604-3.4.9
#把mongodb安裝包從本地電腦複製到工作目錄
COPY ./$MONGODB_PACKAGE_NAME $WORK_PATH/mongodb
#建立資料庫檔案目錄
RUN mkdir -p /data/db
#更新
RUN apt-get update
#把libssl.so.1.0.0裝上,否則無法執行mongodb
RUN apt-get install -y libssl1.0.0 libssl-dev
#把mongodb的bin目錄加入到PATH環境變數中
ENV PATH=$WORK_PATH/mongodb/bin:$PATH
#mongodb的web埠
EXPOSE 28017
#連線埠
EXPOSE 27017
#啟動服務,--rest引數表示開啟web服務
CMD ["mongod", "--rest"]
構建映象
開啟控制檯,在Dockerfile檔案所在目錄執行如下命令,即可構建映象檔案,映象名bolingcavalry/ubuntu16-mongodb349,tag是0.0.1:
docker build -t bolingcavalry/ubuntu16-mongodb349:0.0.1 .
執行apt-get update和apt-get install兩個命令有點耗時,構建成功的輸出大致如下圖所示:
建立一個容器驗證
執行以下命令可以基於剛剛構建的映象建立一個容器:
docker run --name mongo001 -idt -p 28017:28017 bolingcavalry/ubuntu16-mongodb349:0.0.1
再執行docker exec -it mongo001 /bin/bash進入容器,執行mongo命令進入mongodb的控制檯,可以如前一章那樣去驗證和體驗mongodb的功能,如下圖:
web服務
還記得Dockerfile檔案的最後幾行麼:
#mongodb的web埠
EXPOSE 28017
#連線埠
EXPOSE 27017
#啟動服務,--rest引數表示開啟web服務
CMD ["mongod", "--rest"]
如上所示,首先將28017埠暴露出來了,我們在docker run的時候也通過-p引數做了埠對映,並且Dockerfile的CMD命令還增加了一個引數”–rest”,有了這個引數,就開啟了mongodb的web服務,在當前電腦上開啟瀏覽器輸入localhost:28017,可以看到如下圖所示和頁面:
至此,我們本地製作mongodb的Docker映象的實戰就完成了,有hub.docker.com賬號的讀者也可以通過docker push命令將本地的映象推送到hub.docerk.com網站上去,以後隨時可以pull到;