#8 docker-composeでMongoDB+mongo-expressを動かす

icon s1621096 が 2020/02/10 1:59 に投稿 ( icon s1621096 が 2020/02/10 2:04 に編集 <更新履歴> )

MongoDBとは

MongoDB(モンゴDB)は、オープンソースソフトウェアのドキュメント指向データベースである。
C++言語で記述されており、開発とサポートはMongoDB Inc.が行なっている。

(wikipediaより)

mongo-expressとは

MongoDBをWebUIで操作できるツール
https://github.com/mongo-express/mongo-express

clip-20200210020116.png

前提

  • Dockerインストール済
  • docker-composeインストール済

インストール

1.docker-compose.yml

  1. docker-compose.ymlを置くディレクトリを作成します。
    $ mkdir mongo

  2. 作成してディレクトリに移動します。
    cd mongo

  3. docker-compose.ymlを作成します。
    nano docker-compose.yml

version: '3'

services:
  mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017
      - 27018:27018
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password!
    volumes:
      - ./volumes/mongo/db:/data/db
      - ./volumes/mongo/configdb:/data/configdb
    # ログローテーション設定(https://qiita.com/hidekuro/items/b1c7ce58c9d9fe342907)
    logging:
      driver: "json-file" # defaults if not specified
      options:
        max-size: "10m"
        max-file: "3"

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: password!
      ME_CONFIG_BASICAUTH_USERNAME: user
      ME_CONFIG_BASICAUTH_PASSWORD: password!
    # ログローテーション設定(https://qiita.com/hidekuro/items/b1c7ce58c9d9fe342907)
    logging:
      driver: "json-file" # defaults if not specified
      options:
        max-size: "10m"
        max-file: "3"

各種設定

  • MongoDB
    • MONGO_INITDB_ROOT_USERNAME:MongoDBの管理者ユーザー名
    • MONGO_INITDB_ROOT_PASSWORD:MongoDBのパスワード
  • mongo-express
    • ME_CONFIG_MONGODB_ADMINUSERNAME:MongoDBの管理者ユーザー名(上と同じものを設定)
    • ME_CONFIG_MONGODB_ADMINPASSWORD:MongoDBのパスワード(上と同じものを設定)
    • ME_CONFIG_BASICAUTH_USERNAME:mongo-expressのベーシック認証のユーザー名
    • ME_CONFIG_BASICAUTH_PASSWORD:mongo-expressのベーシック認証のパスワード

インターネット上に置く場合はパスワードは変えましょう。

ポート番号は必要に応じて変更してください。左側がホスト側です。
例)8081:8081→80:8081

2.dockerコンテナ作成&起動

$ sudo docker-compose up -d

docker-compose.ymlがあるディレクトリで上記のコマンドを実行すると各コンテナが作成・起動します。

mongodbのデータは./volumes/mongo/(docker-compose.ymlがあるディレクトリにあるvolumes/mongo)に配置されます。

起動確認

  1. ブラウザで下記URLにアクセスします。
    http://localhost:8081 or http://PCのポート番号:8081
    上でポート番号を変えた場合は変更してください。

  2. 認証を求められるので、下記を入力します。
    ユーザ名:user
    パスワード:password!
    上でユーザー名とパスワードを変えた場合は適宜変更してください。

  3. mongo-expressにログイン完了!

 添付ファイル     - [1]


 コメント追加