9
11

More than 1 year has passed since last update.

MongoDB を docker-compose を使って構築してみる。さらに MongoDB Compass を使って、GUI化する。

Last updated at Posted at 2021-12-20

環境

MacOS 12.0.1
Docker Engine v20.10.11

前提

安心してください。特に用意するものありません。

Composeファイル

dockerhubにあるmongoのイメージを使ってやっていきたいと思います。

docker-compose.yml
version: '3'

services:

  mongodb:
    container_name: "mongodb"
    hostname: mongodb
    image: mongo
    restart: always
    ports:
      - 27017:27017
    volumes:
      - ./db:/data/db
      - ./configdb:/data/configdb
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password

今回は、mongoのデフォルトポートの27017ポートを使用する。なので、コンテナ側の27017ポートをホスト側の27017に割り当てた。
また、データベースのデータはコンテナの*/data/*以下に格納されるので、ボリュームして、データが残るようにした。

いざ実行

先ほどのcomposeファイルのあるディレクトリで以下のコマンドを実行する。

コマンド
  # ↓起動のコマンド
$ docker-compose up -d
  # ↓コンテナのbashを立ち上げるコマンド
$ docker-compose exec mongodb bash
  # ↓コンテナを停止させるコマンド
$ docker-compose down

docker-compose psコマンドでコンテナが起動していることを確認できる。

確認
$ docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
mongodb             "docker-entrypoint.s…"   mongodb             running             0.0.0.0:27017->27017/tcp

mongoは立ち上がった瞬間mongodが実行されるので、何かする必要はありません。
気になる人はdockerイメージをぜひ実際に覗いてみてください。わかると思います。

MongoDBをGUI化して

MongoDB Compassを使ってデータベースをGUI化して、データの表示や操作をできるようにします。
mongo-expressでweb上で同じようなことができるらしいのですが、なんかうまくいかなかった。ってことでMongoDB Compass、やっていきます。
ちなみに超簡単です。
まず、Compass入ってない人はこのリンクからダウンロードしてください。
立ち上げると次の画面が出てくると思います。

mongodbcompass.png

Paste your connection string (SRV or Standard )と書いてある場所に以下のconnection stringを入力すると、もうGUIでデータの表示や操作が可能となります。

mongodb://root:password@localhost:27017

ちなみにフォーマットはmongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]というようになっています。(公式ドキュメントの説明

さいごに

今後のことも考えて、docker-composeでMongoDBを構築しようと考えました。この先は好きなようにしてください。
ちなみにデータベースいじるのは、docker-compose execコマンドでコンテナに入り、mongoコマンドでシェルを起動して、イジイジできます。

9
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11