MongoDBの基本操作:LinuxとDockerでのインストール・設定ガイド

MongoDBの簡単な使い方

この記事では、人気のあるNoSQLデータベースであるMongoDBについて解説します。特に、Linux環境およびDockerコンテナ上でのインストールと初期設定に焦点を当てています。

Linux上でのMongoDBインストール手順

CentOS 7を使用していることを前提としています。まず公式サイトからコミュニティ版をダウンロードしてください。

# MongoDBの取得と展開
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.9.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.9.tgz

MongoDBサーバーの起動方法

必要なディレクトリを作成し、サービスを開始します。

# データ保存場所とログ出力先の作成
mkdir -p /data/db /var/log/mongodb

# MongoDBの実行(バックグラウンドで起動)
./bin/mongod --port=27017 --dbpath=/data/db --logpath=/var/log/mongodb/mongod.log --bind_ip=0.0.0.0 --fork
  • --dbpath: データ格納ディレクトリの指定
  • --logpath: ログファイルパスの指定
  • --logappend: ログ追記モード有効化
  • --port: 接続ポート番号の変更(デフォルトは27017)
  • --bind_ip: アクセス許可IPアドレス
  • --fork: バックグラウンド実行フラグ
  • --auth: 認証機能の有効化

環境変数の設定

/etc/profileファイルを編集して、MongoDBコマンドへのパスを通します。

export MONGO_HOME=/opt/mongodb
export PATH=$PATH:$MONGO_HOME/bin

設定後、以下のコマンドで反映させてください。

source /etc/profile

設定ファイルを利用した起動

YAML形式で設定ファイルを作成します。例として/mongo/config.ymlを編集します。

systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log"
  logAppend: true
storage:
  dbPath: "/data/db"
  engine: wiredTiger
  journal:
    enabled: true
net:
  bindIp: "0.0.0.0"
  port: 27017
processManagement:
  fork: true

作成した設定ファイルを使ってMongoDBを起動します。

mongod -f /mongo/config.yml

MongoDBの停止方法

次のいずれかの方法でサーバーをシャットダウンできます。

# コマンドラインからの終了指示
mongod --port=27017 --dbpath=/data/db --shutdown

または、シェル上で管理者権限で接続して停止します。

use admin
db.shutdownServer()

DockerによるMongoDBのセットアップ

公式イメージを使用してMongoDBをコンテナとして実行する方法を紹介します。

# イメージの取得
docker pull mongo:4.4.10

# コンテナの起動(認証付き)
docker run --name mongodb-container -p 29017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=adminuser \
-e MONGO_INITDB_ROOT_PASSWORD=adminpass \
-d mongo:4.4.10 --wiredTigerCacheSizeGB 1

コンテナ内部に入り、MongoDBシェルへアクセスします。

docker exec -it mongodb-container bash
mongo -u adminuser -p adminpass

新しいユーザーを作成し、特定のデータベースに対する読み書き権限を与えます。

use sample_db
db.createUser({
  user: "dev_user",
  pwd: "password123",
  roles: ["readWrite"]
})

MongoDBシェルへの接続

リモートホストから接続する際は次のようにします。

mongo 192.168.65.97:29017 -u dev_user -p password123

※dev_userはsample_dbのみに対するreadWrite権限を持ちます。

タグ: MongoDB NoSQL Docker linux YAML

5月20日 09:41 投稿