Назад | Перейти на главную страницу

MongoDB в контейнере на Mac без привязки портов

Я пытаюсь настроить локальный экземпляр Mongo с помощью Docker в целях разработки. Мне нужно включить аутентификацию, и согласно документы это возможно.

Проблема в том, что после того, как я создаю начального пользователя-администратора (используя документы, приведенные выше), следующим шагом будет подключение «извне», что не удается. Я также хотел бы иметь возможность подключаться через толстый клиент (я использую Robo 3T).

Я создал контейнер докеров, используя:

docker run --name mongodb -p 0.0.0.0:27017:27017 -d mongo --auth

Затем я создал пользователя с правами администратора:

docker exec -it mongodb mongo admin
> db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

Затем я попытался войти в систему извне, используя:

docker run -it --rm --link mongodb:mongo mongo mongo -u root -p 123456

я получаю ошибку:

MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
2018-01-26T16:17:34.309+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2018-01-26T16:17:34.309+0000 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed

Я думаю, что что-то неправильно понимаю, но не знаю, что именно.

Убедитесь, что каталог / data / db имеет необходимые разрешения, запустив

sudo chown -R id -un / data / db

Введите ваш пароль