前回の記事で、Docker Desktop for Windows上にCoderを導入しました。
今回は、Docker上のどのコンテナからでも利用できるMongoDBを構築します。
MongoDBとは、JSON形式のデータを蓄えるDBMS(データベース管理システム)です。 一般的なDBよりもプログラムとの親和性が高いと言われています。
僕の場合は、プログラム内で生じた永続的なデータをJSON形式で保存することが多くあったため、 MongoDBを知ったときは、自分のためのDBだなと思いました。
それでは、今回もCoderを利用して構築していきます。
まず、Coderを起動し、ログインします。
前回作成した、Coderフォルダと同一階層に「MongoDB」フォルダを作成し、下記2つのフォルダと2つのファイルを作成します。
【フォルダ】
・configdb
・db
【ファイル】
・.env
・docker-compose.yml
以下のような感じになります。フォルダは両方空でOKです。

それぞれファイルに以下内容を書き込みます。
■.env
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
COMPOSE_CONVERT_WINDOWS_PATHS=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3' | |
services: | |
mongo: | |
image: mongo:4.4 | |
restart: always | |
container_name: 'mongo' | |
environment: | |
- MONGO_INITDB_ROOT_USERNAME=root | |
- MONGO_INITDB_ROOT_PASSWORD=example | |
ports: | |
- '27017:27017' | |
volumes: | |
- '/E/coder/projects/MongoDB/db:/data/db' | |
- '/E/coder/projects/MongoDB/configdb:/data/configdb' | |
mongo-express: | |
image: mongo-express | |
restart: unless-stopped | |
container_name: 'mongo-express' | |
depends_on: | |
- 'mongo' | |
ports: | |
- '8081:8081' | |
environment: | |
- ME_CONFIG_MONGODB_ADMINUSERNAME=root | |
- ME_CONFIG_MONGODB_ADMINPASSWORD=example | |
- ME_CONFIG_MONGODB_SERVER=mongo |
Coderのターミナルで、下記コマンドを実行し、コンテナを起動すれば完了です。
cd MongoDB
sudo docker-compose build
sudo docker-compose up -d
僕の環境では、Docker Desktop for Windowsでは、docker-compose.ymlの「volumes」に絶対パスを記入しなければ、DBデータが永続化されませんでした。
参考にされる場合は、ご自身の環境に合わせて変更ください。
また、僕の環境では、最新のMongoDBがうまく起動しなかったため、いくつか前の4.4を導入しました。
下記URLに接続すれば、MongoDBをWebベースで編集できる機能「Mongo Express」にアクセス可能です。 http://[サーバIP]:8081/
コメント