AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Install or Uninstall mongot in a Docker Container

MongoDB Community Edition では、検索プロセス mongot をインストールできます。検索プロセスは、 Dockerではイメージとして配置で利用できます。mongot プロセスは、独自の埋め込みまたは自動埋め込みを使用した全文検索とセマンティック検索をサポートしています。

注意

実験用の配置でより迅速にオンボードするには、MongoDB Search および MongoDB ベクトル検索 ローカル開発クイック スタートを参照してください。

重要

mongot mongod からデータを同期し、MongoDB レプリカセットが必要です。スタンドアロン配置mongod は mongot をサポートしません。

mongot を配置する前に、次の手順を完了します。

  1. DockerとDocker Compose をインストールします。

  2. MongoDB ベクトル検索がコレクション内のテキストデータの埋め込みを自動的に生成する場合は、エンドポイントとなる接続されたデバイス API キーを作成します。詳しくは、「自動埋め込み」を参照してください。

    重要

    自動埋め込みはプレビュー段階です。機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。「プレビュー機能」を参照してください。

    If you don't already have the keys, create the endpoint service API keys from the Atlas UI. We recommend that you create two keys, one for generating embeddings at index-time and another for generating embeddings at query-time, from two Atlas projects.

    注意

    埋め込みを生成するためのプロバイダーエンドポイントは、Atlas UIからAPIキーを作成するか、Voyage AIから直接 API キーを作成するかによって異なります。

警告

この手順では、アクセス制御を有効にしない最小限の安全でないデフォルト構成を提供します。この手順では、ローカルでの実験のみを目的とした配置を作成します。

これらのコンテナを公開し、本番環境で設定を使用する前に、次のリソースを参照して配置を保護します。

1

mongot Dockerイメージをプルするには、次のコマンドを実行します。

docker pull mongodb/mongodb-community-search:latest

イメージがDockerディスク上にあることを確認するには、次のコマンドを実行します。

docker image ls mongodb/mongodb-community-search
2

データベースと検索コンテナ間のコンテナ間通信用の Docker ネットワークを作成するには、次のコマンドを実行します。

docker network create search-community
3

MongoDB Dockerイメージをダウンロードするには、次のコマンドを実行します。

docker pull mongodb/mongodb-community-server:latest

注意

オンプレミス配置でMongoDB Search を使用するには、少なくともMongoDB 8.3+ が必要です。詳細については、「MongoDB Search の互換性」を参照してください。

Dockerを使用してMongoDBをインストールする方法の詳細については、 Dockerを使用してMongoDB Community をインストール を参照してください。

4

mongod に接続するための mongot 用のパスワードファイルを作成します。オペレーティング システムを選択し、コマンドを実行します。

<mongot_password> をパスワードに置き換え、次のコマンドを実行して、現在のディレクトリに passwordFile という名前のファイルを作成します。

echo -n "<mongot_password>" > passwordFile
chmod 400 passwordFile

<mongot_password> をパスワードに置き換え、次のコマンドを実行して、mongot-secrets という Docker マネージド名前ボリューム内に passwordFile というファイルを作成します。後のステップで mongot を開始するときは、ホストするパスの代わりにこのボリュームを参照します。

docker volume create mongot-secrets
docker run --rm -v mongot-secrets:/secrets busybox sh -c "echo -n '<mongot_password>' > /secrets/passwordFile && chmod 400 /secrets/passwordFile"

Windows では、バインドマウントされたホスト ファイルは、Linux コンテナ内の Unix パーミッション ビットを維持しません。Docker Desktop のファイル共有レイヤーは、NTFS 側で設定したパーミッションを上書きします。Windows には、ネイティブな chmod 相当はありません。前のコマンドの一時的なコンテナは、Linux 側でパーミッションを正しく設定します。

注意

-n フラグは末尾の改行を防止します。

5

構成ファイルを作成するには、次のコードを mongod.conf または希望する場所に保存します。

# MongoDB Configuration File
# Network configuration
net:
port: 27017
bindIpAll: true # Equivalent to --bind_ip_all
# Replica set configuration
replication:
replSetName: rs0
# Search configuration parameters
setParameter:
# Server parameters to advise mongod of mongot availability for search index management and querying
searchIndexManagementHostAndPort: mongot-community.search-community:27028
mongotHost: mongot-community.search-community:27028
skipAuthenticationToSearchIndexManagementServer: false
useGrpcForSearch: true
searchTLSMode: disabled
6

mongod を起動するには次の手順に従います。

  • </path/to/data/db> をマウントされたボリュームのローカル ディレクトリへのパスに置き換えます。

  • </path/to/mongod.conf> を、上記で作成した構成ファイルへのパスに置き換えます。

  • Windows では、各行の末尾のバックスラッシュ (\) を shell の行継続文字に置き換えます。Command Prompt はキャレット (^) を使用します。また、PowerShell はバックティックを使用します。

docker run --rm \
--name mongod \
-v </path/to/mongod.conf>:/etc/mongod.conf:ro \
-v </path/to/data/db>:/data/db \
-p 27017:27017 \
--network search-community \
mongodb/mongodb-community-server:latest \
--config /etc/mongod.conf \
--replSetMember=mongod.search-community:27017
7

ポート 27017 で起動した mongod インスタンスに接続するには、次のコマンドを実行します。

docker exec -it mongod mongosh --port 27017
8

mongot searchCoordinator ロールを持つユーザーを介して MongoDB 配置に接続できる必要があります。

次のコマンドを実行して、adminデータベースに接続します。

use admin

searchCoordinator ロールを持つユーザーを作成するには:

  • <mongot_username> を mongot ユーザーのユーザー名に置き換えます。

  • <mongot_password> を、ステップ 4 の passwordFile で指定したパスワードに置き換えます。

  • 次のコマンドを実行します:

db.createUser(
{
user: "<mongot_username>",
pwd: "<mongot_password>",
roles: [ "searchCoordinator" ]
}
)

ユーザーの作成の詳細については、「自己管理型配置でユーザーを作成する」を参照してください。

9

YAML構成ファイルを使用して mongot を構成できます。前の手順で指定したユーザー名をsyncSource.replicaSet.scramAuth.username として指定する必要があります。また、前の手順で作成した passwordFile を syncSource.replicaSet.scramAuth.passwordFile として指定する必要があります。

mongot 構成オプションの詳細については、mongot オプションを参照してください。

例では、以下に示すように 設定をローカル構成に合わせて調整できます。

# mongot.conf
syncSource:
replicaSet:
hostAndPort: "mongod.search-community:27017"
scramAuth:
username: "mongotUser"
passwordFile: "/passwordFile"
authSource: "admin"
tls:
enabled: false
replicationReader:
readPreference: "secondaryPreferred"
storage:
dataPath: "/data/mongot"
server:
grpc:
address: "mongot-community.search-community:27028"
tls:
mode: "disabled"
metrics:
enabled: true
address: "mongot-community.search-community:9946"
healthCheck:
address: "mongot-community.search-community:8080"
logging:
verbosity: INFO

ファイルをmongot.config またはご希望のファイルロケーションに保存します。

どちらのコンテナも同じ search-community Dockerネットワークで動作します。

10

Community での検索バイナリ(mongot)を開始するには、オペレーティングシステムを選択して、コマンドを実行します。

  • mongot データを保存するには、</path/to/data/mongot> をマウントされたボリュームのローカル ディレクトリへのパスに置き換えます。

  • </path/to/mongot.conf> を、前のステップで作成した mongot構成ファイルへのパスに置き換えます。

  • </path/to/passwordFile> を作成したパスワード ファイルへのパスに置き換えます。

docker run --rm \
--name mongot-community \
-v </path/to/data/mongot>:/data/mongot \
-v </path/to/mongot.conf>:/mongot-community/config.default.yml \
-v </path/to/passwordFile>:/passwordFile:ro \
--network search-community \
-p 8080:8080 \
-p 9946:9946 \
mongodb/mongodb-community-search:latest
  • mongot データを保存するには、</path/to/data/mongot> をマウントされたボリュームのローカル ディレクトリへのパスに置き換えます。

  • </path/to/mongot.conf> を、前のステップで作成した mongot構成ファイルへのパスに置き換えます。

  • syncSource.replicaSet.scramAuth.passwordFile を mongot 構成ファイルの "/passwordFile" ではなく "/secrets/passwordFile" に設定します。このコマンドは、ステップ 4 で作成した mongot-secrets ボリュームをコンテナ内の /secrets にマウントします。

  • PowerShell では、各のカレット (^) をバックティックに置き換えます。このコマンドでは、コマンド プロンプトのカレット (^) 行継続文字を使用します。

docker run --rm ^
--name mongot-community ^
-v </path/to/data/mongot>:/data/mongot ^
-v </path/to/mongot.conf>:/mongot-community/config.default.yml ^
-v mongot-secrets:/secrets:ro ^
--network search-community ^
-p 8080:8080 ^
-p 9946:9946 ^
mongodb/mongodb-community-search:latest

このコマンド:

  • ボリュームをマウントします。

  • ローカル ボリュームから構成ファイルをマウントします。

  • ポート範囲を指定します。

  • メトリクス ポートを公開します。

  • mongot-community という名前のコンテナを使用して search-community Dockerネットワーク上のコンテナを起動します。

11

To verify, send a request by using a HTTP client or curl to the /health endpoint. For example, send a curl request similar to the following sample request:

curl localhost:8080/health

エンドポイントは、応答として次のいずれかを返します。

  • SERVING, mongot プロセスが実行中の場合

    mongot インデックスのステータスをチェックしないため、クエリを処理できない可能性があります。クエリを処理するには、インデックスが Ready 状態である必要があります。

  • NOT_SERVING, mongot プロセスが実行されていない場合

詳細については、「mongot 接続の確認」を参照してください。

MongoDB Search と MongoDB ベクトル検索をシステムから完全に除去するには、コンテナイメージ、構成ファイル、およびデータまたはログディレクトリを削除します。次のセクションで必要な手順をご案内します。

1

mongotユーザーを削除するには、<mongot_username>をmongotのために作成したユーザー名に置き換えて、次のコマンドを実行します。

use admin
db.dropUser("<mongot_username>")

詳細については、db.dropUser() を参照してください。

2

mongot プロセスを停止するには、 Dockerで実行中のコンテナイメージを停止します。

3

mongot と mongod 構成ファイルを削除するには、構成ファイルへのフルパスを使用して次のコマンドを実行します。

rm /path/to/config.default.yml
rm /path/to/mongod.conf
4

パスワード ファイルを削除するには、パスワード ファイルへのフルパスを使用して次のコマンドを実行します。

rm /path/to/passwordFile
5

mongot データを保存しているデータディレクトリを削除するには、mongotデータディレクトリへのフルパスを使用して次のコマンドを実行します。

rm /path/to/mongot/data