powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Docker auth
15 сообщений из 15, страница 1 из 1
MongoDB Docker auth
    #39769427
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу запустить сервер MongoDB в контейнере docker. Ставлю из официального репозитория. Делаю, как написано тут.
=stack.yml
Код: l
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
version: '3.3'

services:
  mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 12345678
   
  mongo-express:
    image: mongo-express
    restart: always  
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: 12345678

Запускаю командой:
Код: plaintext
docker-compose -f stack.yml up

Контейнер разворачивается, даже пробегает строка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mongo_1          | Successfully added user: {
mongo_1          |     "user" : "root",
mongo_1          |     "roles" : [
mongo_1          |         {
mongo_1          |             "role" : "root",
mongo_1          |             "db" : "admin"
mongo_1          |         }
mongo_1          |     ]
mongo_1          | }

После чего я не могу подключиться к серверу с логином и паролем. Без логина и пароля подключаюсь, но не могу ничего сделать, т.к. не имею полномочий.

Как заставить нормально работать?
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39769684
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalmaran,

Что знает "не могу"?

Какая команда подключения?
Какая ошибка?
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39769711
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая разница, как подключаться? Ошибка одинаковая будет, выше написана, либо неправильная пара логин пароль, либо, требуется авторизация, если пытаться подключиться без логина.

Вот, например официальный клиент:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ mongo -u root -p
MongoDB shell version v3.6.3
Enter password: 
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.5
2019-02-05T15:36:35.846+0300 E QUERY    [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20
@(auth):6:1
@(auth):1:2
exception: login failed

Если без -u и -p то на любое действие БД ответит:
Код: plaintext
019-02-05T15:39:14.729+0300 E QUERY    [thread1] Error: couldn't add user: command createUser requires authentication :
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39769911
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalmaranКакая разница, как подключаться?
Код: plaintext
$ mongo -u root -p


Разве не так надо?
Код: plaintext
$ mongo  --host mongo -u root -p
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39769917
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalmaran,

посмотрите статус сервиса, с какими параметрами он запущен?
что в логах?
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39770005
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey TominshalmaranКакая разница, как подключаться?
Код: plaintext
$ mongo -u root -p


Разве не так надо?
Код: plaintext
$ mongo  --host mongo -u root -p

Хост по умолчанию - 127.0.0.1. Ничего туда писать не надо в моем случае.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39770669
bubuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalmaran,

mongo shell вы где запускаете? внутри докера или снаружи ?
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39770684
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снаружи пыталось. Оно не пускает из-за настроек моего. Но конфиг ей покинуть у меня тоже не получилось. Она падает с кодом 100, даже если я ей подсовываю её родной конфиг.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39770729
bubuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalmaranСнаружи пыталось. Оно не пускает из-за настроек моего. Но конфиг ей покинуть у меня тоже не получилось. Она падает с кодом 100, даже если я ей подсовываю её родной конфиг.
127.0.0.1 - это всегда местный хост. когда монго в контейнере - 127.0.0.1 внутри контейнера и снаружи - это два разных 127.0.0.1

есть две опции
1. зайдите внутрь контейнера и там запустите монго шелл
2. настройте-разбериться с сетью в контейнере и используйте внешний ip address контейнера
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39770746
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вообще проброс портов сделан. Так что с внешней стороны оно как раз 127.0.0.1. Там сейчас проблема немного в другом. Если коротко, то я не могу заставить сервер работать с моим конфигом. Вечером буду за тем компьютером, напишу конкретно. С телефона не удобно, да и логов с конфигами не представлю.
Как написано тут ( https://stackoverflow.com/questions/37063662/docker-mongodb-config-file) не получается. Монго падает с ошибкой 100.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39776165
bubuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalmaran Вечером буду за тем компьютером, напишу конкретно.

Уж полночь близится, а Германа все нет... (с)
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39776664
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ха. Ну если это кому интересно, то оно заработало. Вот конфиги:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$ cat docker-compose.yml
version: '3.1'
services:
  mongo:
    image: 'mongo:latest'
    volumes:
      - './etc/mongo/mongod.conf:/etc/mongo.conf'
      - './data/db:/data/db'
    ports:
      - '27017:27017'
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=12345678

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
$ cat ./etc/mongo/mongod.conf 
# mongod.conf

# for documentation of all options, see:
#    http://docs.mongodb.org/manual/reference/configuration-options/ 

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

Даже не знаю, что поменялось, но так всё ок.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39777667
bubuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalmaran
Код: plaintext
1.
2.
3.
4.
    volumes:
      - './data/db:/data/db'
    environment:
      - MONGO_DATA_DIR=/data/db

Код: plaintext
1.
2.
3.
4.
5.
6.
$ cat ./etc/mongo/mongod.conf 
storage:
  dbPath: /var/lib/mongodb
  path: /var/log/mongodb/mongod.log



Даже не знаю, что поменялось, но так всё ок.

Как-то странно выглядит это конфигурация - маппить одну папку, а в конфиге использовать другую для файлов бд... и ошибка 100 вроде как связана с путями/правами на них.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39777671
shalmaran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эта опция из стандартного конфига. Она переопределяется переменной окружения. Да, тут вы правы, не хорошо, надо убрать.
Я изменил лишь ip адрес, а это не заметил.
...
Рейтинг: 0 / 0
MongoDB Docker auth
    #39782763
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку юзер создается в db admin, то подключаться надо так:
mongo -u root --authenticationDatabase admin -p
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Docker auth
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]