Предварительное условие: докер установлен на 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: запустить контейнер в фоновом режиме и вернуть идентификатор контейнера;
- --Name = "nginx-lb": укажите имя для контейнера;
- -p: указать сопоставление портов, формат: хост (хост) порт: порт контейнера
- --Auth: включить аутентификацию пароля контейнера mongo
mongodb успешно установлен
4. Войдите в контейнер монго.
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 основан на роли идентификации, а роль учетной записи администратора - userAdminAnyDatabase. userAdmin означает идентификацию управления пользователями, 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: он доступен только в базе данных администратора, предоставляя пользователям полномочия на управление всеми шардами и функциями, связанными с набором репликации.
- readAnyDatabase: доступно только в базе данных администратора, что дает пользователям права на чтение для всех баз данных.
- readWriteAnyDatabase: доступно только в базе данных администратора, предоставляя пользователю права на чтение и запись для всех баз данных.
- userAdminAnyDatabase: доступно только в базе данных администратора, предоставляя пользователю права userAdmin для всех баз данных
- dbAdminAnyDatabase: доступно только в базе данных администратора, предоставляет пользователю права dbAdmin для всех баз данных.
- root: Доступно только в базе данных администратора. Супер аккаунт, супер авторитет
Инструмент управления графическим интерфейсом MongoDB: Robo 3T
https://robomongo.org/download
Резервное копирование и восстановление MongoDB
- Метод резервного копирования:
docker cp
mongodump
- Метод восстановления:
docker cp
mongorestore
https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html