MongoDB®, разделенный на части, упакованный с помощью Bitnami, устанавливает аутентификацию и подключается извне docker

#mongodb #bitnami

Вопрос:

Я пытаюсь настроить bitnami mongodb разделенный докер из https://github.com/bitnami/bitnami-docker-mongodb-sharded с помощью docker-составьте-несколько-осколков.yml

 1. How can i setup authentication to connect
2. How can i connect outside from docker
 

Заранее спасибо

Ответ №1:

Аутентификация должна быть включена по умолчанию. Docker Docker-compose по умолчанию создаст пользователя root с паролем password123 .

Чтобы изменить пароль root, вы можете изменить переменные среды MONGODB_ROOT_PASSWORD во всех первичных и MONGODB_PRIMARY_ROOT_PASSWORD во всех вторичных системах на одно и то же значение.

Затем вы можете подключиться к mongos контейнерам (mongodb-sharded и mongodb-sharded2) и создать дополнительных пользователей, как описано в документации MongoDB: https://docs.mongodb.com/manual/tutorial/deploy-sharded-cluster-with-keyfile-access-control/#create-the-user-administrator

Например:

 $ docker-compose exec mongodb-sharded bash
$ mongo -u root -p my_secure_pass
> admin = db.getSiblingDB("admin")
> admin.createUser(
  {
    user: "fred",
    pwd: passwordPrompt(), // or cleartext password
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

 

Что касается вашего второго вопроса, docker-compose будет настроен по умолчанию ports: ["27017:27017"] на основном сервере mongos (разделенном на mongodb), что означает, что порт 27017 на вашем хосте будет перенаправлен в разделенный кластер MongoDB.

Затем вы можете, например, подключить клиентов MongoDB к хосту Docker с помощью:

 mongo --host dockerhost_ip --port 27017 -u root -p my_secure_pass