Я использую официальный образ докера mongodb: 2.6. Я пытаюсь понять, как включить прямую аутентификацию с помощью user:password
Режим.
Как указать, что mongo должен работать при аутентификации?
Как создать каждый user:password
?
Руководство MongoDB включает в себя руководства для включение аутентификации и добавление пользователя в базу данных.
Предполагая, что вы используете автономный образ с именем mongo
, вы можете передать параметр, чтобы включить аутентификацию, запустив изображение с docker
командная строка похожа на:
docker run --name mongod -d mongo --auth
Остальные шаги по включению и настройке контроля доступа не относятся к Docker. После запуска mongod
с --auth
Параметр вам необходимо создать пользователя с правами администратора, а затем любых дополнительных пользователей.
Также стоит изучить MongoDB. Контрольный список безопасности по другим соображениям безопасности.
Примечание: версия MongoDB 2.6 достигла конец жизни в октябре 2016 г. Я настоятельно рекомендую выполнить обновление до поддерживаемой версии (например, последней версии 3.2.x или 3.4.x) для продолжения поддержки.
Запустите экземпляр mongo docker на своем сервере
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo
Откройте bash на запущенном экземпляре докера.
docker ps
КОНТЕЙНЕР IDIMAGE КОМАНДА СОЗДАЕТ СТАТУС ИМЕНА ПОРТОВ
b07599e429fb mongo "docker-entrypoint ..." 35 минут назад вверх на 35 минут 0.0.0.0:27017->27017/tcp musing_stallman
docker exec -it b07599e429fb bash
root@b07599e429fb:/#
Войдите в оболочку mongo, набрав mongo.
root@b07599e429fb:/# mongo
В этом примере я настрою пользователя с именем ian и предоставлю ему доступ для чтения и записи к базе данных cool_db.
> use cool_db
> db.createUser({
user: 'ian',
pwd: 'secretPassword',
roles: [{ role: 'readWrite', db:'cool_db'}]
})
Выход из оболочки mongod и bash.
Теперь запустите докер mongo с включенной аутентификацией.
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo mongod --auth
Мне удалось подключиться к экземпляру, запущенному на сервере Google Cloud, с моего локального ноутбука с Windows, используя приведенную ниже команду.
mongo <ip>:27017/cool_db -u ian -p secretPassword
Вы можете зафиксировать образ экземпляра контейнера. Это сохранит все изменения, внесенные в его файловую систему, включая каталог / data / db. Вы можете запустить этот образ везде, где работает docker-engine.
docker commit mongodb mongodb-backup
Ссылка: https://blog.madisonhub.org/setting-up-a-mongodb-server-with-auth-on-docker/
Ответ основан на моем ответе в stackoverflow: https://stackoverflow.com/a/46645243/3877642