MongoDBとは
MongoDB(モンゴDB)は、オープンソースソフトウェアのドキュメント指向データベースである。
C++言語で記述されており、開発とサポートはMongoDB Inc.が行なっている。
(wikipediaより)
mongo-expressとは
MongoDBをWebUIで操作できるツール
https://github.com/mongo-express/mongo-express
前提
- Dockerインストール済
- docker-composeインストール済
インストール
1.docker-compose.yml
docker-compose.ymlを置くディレクトリを作成します。
$ mkdir mongo作成してディレクトリに移動します。
cd mongodocker-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)に配置されます。
起動確認
ブラウザで下記URLにアクセスします。
http://localhost:8081 or http://PCのポート番号:8081
上でポート番号を変えた場合は変更してください。認証を求められるので、下記を入力します。
ユーザ名:user
パスワード:password!
上でユーザー名とパスワードを変えた場合は適宜変更してください。mongo-expressにログイン完了!