LoginSignup
32
6

MongoDBをDocker上に構築してみる

Last updated at Posted at 2024-07-07

NoSQLデータベースでドキュメント指向データベースであるMongoDBを試したことがなかったため、今回、Docker上にMongoDBを構築してみます。その後、MongoDBのデータの操作を見てみたいと思います。

構築環境

・Mac PC(Appleシリコン)
・ローカル環境にDockerはインストールされているものとします。

Docker環境にMongoDBを構築する

Dockerファイルと初期データを登録するjsファイルを作成し、dockerコンテナを作成し、起動します。手順は次の通りです。

> docker network create net-mongo_test   # Docker ネットワークの作成

> docker network ls | grep net-mongo_test   # Docker ネットワーク作成の確認
56d8fc9f8ebb   net-mongo_test   bridge    local
Docker file
FROM mongo:7.0-jammy

ENV LANG=ja_JP.UTF-8
ENV MONGO_INITDB_ROOT_USERNAME=root
ENV MONGO_INITDB_ROOT_PASSWORD=password

COPY init_db.js /docker-entrypoint-initdb.d/

EXPOSE 27017   # 接続ポート
初期投入データ:init_db.js
db = db.getSiblingDB('db_employee_info');

db.employee.insertMany([
    {
        employeeName: '田村',
        age: 30,
        created_date: new Date(),
        updated_date: new Date()
    },
    {
        employeeName: '山田',
        age: 31,
        created_date: new Date(),
        updated_date: new Date()
    },
    {
        employeeName: '中山',
        age: 37,
        created_date: new Date(),
        updated_date: new Date()
    },
    {
        employeeName: '佐藤',
        age: 23,
        created_date: new Date(),
        updated_date: new Date()
    },
    {
        employeeName: '佐々木',
        age: 33,
        created_date: new Date(),
        updated_date: new Date()
    },
    {
        employeeName: '吉田',
        age: 35,
        created_date: new Date(),
        updated_date: new Date()
    }
]);
> docker build --no-cache --tag mongo-test:latest .   # コンテナイメージをビルドする

> docker images | grep mongo-test
mongo-test    latest     42b2c022be68   6 seconds ago     761MB

> docker run -d \
   --publish 27017:27017 \
   --name mongodb-test \
   --net net-mongo_test \
   --volume db_test_mongo:/data/db mongo-test   # コンテナを作成、起動する

> docker ps | grep mongodb-test
2516f7333eb9   mongo-test   "docker-entrypoint.s…"   30 seconds ago   Up 29 seconds   0.0.0.0:27017->27017/tcp   mongodb-test

これで、コンテナが作成され、起動された状態となりました。

GUIツールを使用し、起動されたデータベースを確認する

データを確認・操作できるGUIツールが幾つかあります。その中で、無料で使用できるものが次のものです。

今回は『NoSQL Booster』というものを使用しました。

インストールが完了したら、次のように接続先を入力し、MongoDBに接続します。
mongodb://root:password@localhost:27017

nosqlbooster_conn.png

上記で作成された「employee」コレクションを開くと、データが表示されました。

nosqlbooster_1.png

今回はここまでとします。
次回、データ操作などを試してみたいと思います。
使いやすいGUIツールがあれば、コメントをお願いします。

32
6
0

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
32
6