1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker MongoDB mongo-express

Posted at

MongoDB を Docker で使いたい

私はアプリを開発する際にデータベースをMac等のローカル環境にダウンロードしたくないので、Dockerというコンテナ管理ツールを使用しています。移行も楽なので。本番環境でも使いたいのは山々ですが、Kubernetes周りの知識がないので中々踏み込めないという感じです。まぁ規模にも因るんですが。

この記事はDockerを使ってMongoDBをたてるサンプルみたいなもの。他にわかりやすいものがなくて、作る際に調べた記憶があったので。

動作環境はMacOS Catalina

Goal

docker-compose.ymlファイルを作成してMongoDBmongo-expressをlocalhostにたてます。

MongoDBというのはNoSQL
mongo-expressというのはMySQLでいうphpMyAdminみたいなもの。MongoDBの中身が見易くなる。

Docker

MongoDB

mongo-express

docker-compose.yml

# Use root/example as user/password credentials
version: "3.1"

services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root   # ユーザー名
      MONGO_INITDB_ROOT_PASSWORD: tree  # パスワード
    ports:
      - 27014:27017
    volumes:
      - ./db:/data/db
      - ./configdb:/data/configdb

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8080:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root   # ユーザー名
      ME_CONFIG_MONGODB_ADMINPASSWORD: tree   # パスワード

解説

docker-compose.ymlファイルの基本的な書き方は以下参照。
https://docs.docker.com/compose/compose-file/

portsの指定は以下参照
https://qiita.com/tksugimoto/items/23fcce1b067661e8aa46#%E6%A4%9C%E8%A8%BC%E7%B5%90%E6%9E%9C

volumesで指定した場所にデータベースのファイルが作成されます。
sample/docker-compose.yml にファイルがあったとするとsample/dbsample/configdbが作成されます。

How To Use

whoami$ pwd
/Users/whoami/sample
whoami$ ls
docker-compose.yml
whoami$ docker-compose up -d    // -d は daemon で実行という意味
Creating network "sample_default" with the default driver
Creating sample_mongo-express_1 ... done
Creating sample_mongo_1         ... done
whoami$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
1aeb90deadd0        mongo               "docker-entrypoint.s…"   23 seconds ago      Up 22 seconds       0.0.0.0:27014->27017/tcp   sample_mongo_1
6649bb697412        mongo-express       "tini -- /docker-ent…"   23 seconds ago      Up 9 seconds        0.0.0.0:8080->8081/tcp     sample_mongo-express_1

whoami$ docker-compose down
Stopping sample_mongo_1         ... done
Stopping sample_mongo-express_1 ... done
Removing sample_mongo_1         ... done
Removing sample_mongo-express_1 ... done
Removing network sample_default
whoami$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker-compose up -dした後ブラウザで[http://localhost:8080/]を開くと、そこにmongo-expressがあります。

注意

ポート番号の指定を適当にやりすぎるとMongoDBがたたない。DockerのMongoDBのポートが27017しかないみたいな記事も見た事がある気がする。
mongo-expressはdockerでは開発環境しか使えないらしい。

予告

これでたてたMongoDBにNode.jsから繋ぐ方法も書こうと思う。

公式ref

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?