前提条件:dockerがMacにインストールされている
1.最新のMongoDBミラーをプルします
docker pull mongo:latest
2.ミラーを表示します
docker images
3.mongoコンテナーを実行します
docker run -itd --name mongo -p 27017:27017 mongo --auth
促す:
- docker run:新しいコンテナーを作成してコマンドを実行します
- -i:コンテナをインタラクティブモードで実行します。通常は-tと一緒に使用します。
- -t:コンテナの疑似入力端子を再割り当てします。通常は-iと同時に使用されます。
- -d:コンテナをバックグラウンドで実行し、コンテナIDを返します。
- --Name = "nginx-lb":コンテナの名前を指定します。
- -p:ポートマッピングを指定します。形式は次のとおりです。ホスト(ホスト)ポート:コンテナポート
- --Auth:mongoコンテナのパスワード認証を有効にします
mongodbが正常にインストールされました
4.mongoコンテナを入力します
docker exec -it mongo mongo admin
促す:
- docker exec:実行中のコンテナーでコマンドを実行します
- -i:STDINが接続されていなくても開いたままにします
- -t:疑似端末を割り当てます
5.管理者アカウントとパスワードを作成します
ここのアカウントとパスワードはadminに設定されています
db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
mongodbのユーザーはIDロールに基づいており、管理者アカウントのロールはuserAdminAnyDatabaseです。「userAdmin」はユーザー管理IDを表し、「AnyDatabase」は任意のデータベースを管理できることを表します。
6.作成したアカウントでログインします
db.auth('admin', 'admin')
管理者アカウントにログインした後、このアカウントを使用して他のデータベース管理者アカウントを作成できます
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
ロールの組み込みロールは次のとおりです。
- 読み取り:ユーザーが指定されたデータベースを読み取れるようにします
- readWrite:ユーザーが指定されたデータベースの読み取りと書き込みを許可します
- dbAdmin:ユーザーが、インデックスの作成、削除、統計の表示、system.profileへのアクセスなど、指定されたデータベースで管理機能を実行できるようにします。
- userAdmin:ユーザーがsystem.usersコレクションに書き込み、指定されたデータベースでユーザーを作成、削除、および管理できるようにします
- clusterAdmin:adminデータベースでのみ使用可能であり、すべてのシャードおよびレプリケーションセット関連機能の管理権限をユーザーに提供します。
- readAnyDatabase:adminデータベースでのみ使用可能で、ユーザーにすべてのデータベースの読み取り権限を付与します
- readWriteAnyDatabase:adminデータベースでのみ使用可能で、すべてのデータベースに対する読み取りおよび書き込み権限をユーザーに付与します
- userAdminAnyDatabase:adminデータベースでのみ使用可能で、すべてのデータベースに対するuserAdmin権限をユーザーに付与します
- dbAdminAnyDatabase:adminデータベースでのみ使用可能で、すべてのデータベースに対するdbAdmin権限をユーザーに付与します。
- root:adminデータベースでのみ使用できます。スーパーアカウント、スーパーオーソリティ
MongoDB GUI管理ツール:Robo 3T
https://robomongo.org/download
MongoDBのバックアップとリカバリ
- バックアップ方法:
docker cp
mongodump
- 回復方法:
docker cp
mongorestore
https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html