docker-compose構建mongodb容器實例

    docker-compose可以一次性開啓多個docker實例,這一點比Dockerfile來構建docker容器要方便的多。docker-compose的重點是對yml文件的配置。yml文件的配置需要注意的是嚴格控制縮進。

    需要說明的一點是docker-compose命令並不是隨着docker安裝一起安裝的,他需要額外的安裝,如果沒有安裝,可以在github上下載對應系統的版本:https://github.com/docker/compose/。如果是linux系統,下載解壓後將可執行命令docker-compose放入/usr/bin目錄並賦予可執行的屬性:chmod +x /usr/bin/docker-compose。

    mongodb容器構建其實很簡單,就是需要指定鏡像來源,如果需要開啓認證,需要配置環境變量MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD。一般我們希望對鏡像中的磁盤做外部映射,這樣即使容器退出了,下次啓動,容器中保留的數據不會丟失。

    下面給出mongodb的docker-compose配置。

    docker-compose-mongodb.yml

version: '3'
services:
  mongodb:
    image: mongo:latest
    restart: always
    volumes:
      - /data/mongo/db:/data/db
      - /data/mongo/log:/var/log/mongodb
    ports:
      - 27018:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin

    這裏給出的端口映射將容器中的27017映射爲了27018,因爲本機安裝了mongodb,這裏爲了避免端口占用衝突,所以將它用了27018。 

    我們要啓動容器,需要先準備文件夾/data/mongo/db以及/data/mongo/log。

    在配置文件所在目錄,我們執行這樣的命令就可以啓動容器。

    # docker-compose -f docker-compose-mongodb.yml up -d

    如果本地鏡像列表中不存在mongo:latest,那麼會從遠程倉庫拉取,會耗費一些時間。

    這樣的啓動,我們默認使用了admin用戶和admin密碼做初始認證用戶和密碼。一般在使用中,我們會創建一個用戶,但是創建用戶需要注意的是,我們需要切換到admin數據庫下use admin,然後認證db.auth("admin","admin"),返回1,表示認證成功。接着,我們需要創建一個用戶給一個數據庫使用,這時候我們還需要切換到別的數據庫下,比如mec,切換命令爲use mec。這時候我們通過命令 db.createUser({user:'hadoop',pwd:'123456',roles:[{role:'dbOwner',db:'mec'}]}) 創建hadoop用戶並指定密碼。

    以上創建新用戶必須要注意切換到用戶所管理的數據庫上。否則當我們使用的時候,可能會報錯,默認不切換,我們創建的用戶是管理的admin數據庫。

 

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