苦渋の2日後、ようやく自分の所望の効果を達成し、それは主に、最新の4.2マルチドキュメントのトランザクションをテストするために、最新のMongoDBさらにreplicaSetを展開ドッカ - コンを介して行われ、以下のあなたと全体の手順を共有します:
ドッキングウィンドウ-compose.ymlは次のとおりです。
バージョン: '3.4' のサービス: モンゴ: CONTAINER_NAME:のMongoDB 画像:モンゴ:最新の ホスト名:のMongoDB ボリューム: - /data/mongodb/mongod.conf:/etc/mongod.conf - /データ/ MongoDBの/データ/ DB /:/データ/ DB / - /データ/ MongoDBの/データ/ログ/:は/ var / log /のMongoDB / - /data/mongodb/initdb.d/:/docker-entrypoint-initdb.d/ 環境: - MONGO_INITDB_ROOT_USERNAME =ルート - MONGO_INITDB_ROOT_PASSWORD = 123456の ポート: - "27017:27017" ヘルス: のテスト:テスト$$(エコー"rs.initiate(OK)|| rs.status()OK。。" |モンゴ-uルート-p '123456' --quiet) - EQ 1 間隔:10秒 start_period:30代 のコマンド:[ "--replSet"、 "RS0"、 "--bind_ip_all"]
説明:
1、/data/mongodb/mongod.confファイルは次のように、あなたはファイルをマウントしていない場合は、主に、検証を可能にするために、事前に構築されたストリーキングでさらにreplicaSet必要
#mongod.conf #すべてのオプションのドキュメントは、以下を参照してください #http://docs.mongodb.org/manual/reference/configuration-options/ #どこで、データを保存する方法について説明します。 ストレージ: DBPATH:/ data / dbで ジャーナル: 有効:真 #エンジン: #1 mmapv1: #1 wiredTiger: #ログデータを書き込みます。 systemLog: 先:ファイル logAppend:真の パス:/var/log/mongodb/mongod.log #ネットワークインタフェースの ネット: ポート:27017 bindIp:127.0.0.1の プロセスの実行方法# processManagementを: のTimeZoneInfo:を/ usr / share / zoneinfoのセキュリティ: 承認:有効 #operationProfiling: #replication: #sharding: ##エンタープライズのみのオプション: #auditLog: #snmp:
2は、このディレクトリを初期化するために使用される/data/mongodb/initdb.d内のスクリプトが、前者は任意のデータを行わないことを提供し、私は、ディレクトリ内に作成create-app-user.sh カスタム・データベースを初期化するために[yourdb次のようにユーザー名]と[パスワード] [123456] yourAdminは、読み取ります。
#!は/ usr / binに/ envをbashの エコー " のmongoユーザーを作成しています... " モンゴ管理 -uルート-p 123456 << EOF db.createUser({ユーザー:' 管理者'、PWD:' 123456 '、役割:[{役割:' userAdminAnyDatabase '、DB:' 管理者' }]}); db.grantRolesToUser( " 管理者" 、 [ " clusterAdmin " ] )。 123456 << EOF 使用yourdb db.createUserを({ユーザー:' yourdbAdmin '、PWD:' 123456 '、ロール:[{役割:' READWRITE '、DB:' yourdb ' }]}) EOF エコー 」yourdb用に作成Mongoのユーザー。"
図3は、monogクライアントログインをテストするために使用することができます。
Mongoの-uルート-p 123456
ログインが成功した後、このようなドロップ:
実行 ショーDBS、 あなたはそれらのデータベースが構築され見ることができ、あなたが使用することができ、自分自身にテスト・ユーザーとパスワードを建てました。
Mongoの-u yourdbAdmin -p 123456 --authenticationDatabase yourdb