Гость
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Docker auth / 15 сообщений из 15, страница 1 из 1
04.02.2019, 23:52
    #39769427
shalmaran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
Хочу запустить сервер 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
05.02.2019, 14:53
    #39769684
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
shalmaran,

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

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

Вот, например официальный клиент:
Код: 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
06.02.2019, 07:36
    #39769911
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
shalmaranКакая разница, как подключаться?
Код: plaintext
$ mongo -u root -p


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

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


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

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

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

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

Уж полночь близится, а Германа все нет... (с)
...
Рейтинг: 0 / 0
20.02.2019, 12:06
    #39776664
shalmaran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
Ха. Ну если это кому интересно, то оно заработало. Вот конфиги:
Код: 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
22.02.2019, 01:13
    #39777667
bubuk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
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
22.02.2019, 01:41
    #39777671
shalmaran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
Эта опция из стандартного конфига. Она переопределяется переменной окружения. Да, тут вы правы, не хорошо, надо убрать.
Я изменил лишь ip адрес, а это не заметил.
...
Рейтинг: 0 / 0
06.03.2019, 04:51
    #39782763
DrGonzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB Docker auth
Поскольку юзер создается в db admin, то подключаться надо так:
mongo -u root --authenticationDatabase admin -p
...
Рейтинг: 0 / 0
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Docker auth / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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