Не удается подключиться к подключенному экземпляру MongoDB

Я пытаюсь запустить экземпляр Seyren локально, и я хотел бы сделать это, используя документированный образ MongoDB. После того, как я вытащил последний образ докера, я запускаю его и открываю порт 27017:

docker run --name mongodb -v /data/db:/data/db -p 27017:27017 -d mongo

Следующее, что нужно сделать, это скомпилировать файл jar seyren и передать ему некоторые переменные. docker.local сопоставляется с IP-адресом панели инструментов докера в /etc/hosts

java -jar seyren-1.3.0.jar GRAPHITE_URL=https://graphiteurl.io MONGO_URL=mongodb://docker.local:27017

Но тогда я получил следующие ошибки:

30.03.2016 13:58:02.643 [localhost-startStop-1]

ИНФОРМАЦИЯ com.seyren.mongo.MongoStore - обеспечение наличия всех необходимых нам индексов 30/03/2016 13:58:12.661 [localhost-startStop-1]

ОШИБКА com.seyren.mongo.MongoStore - Ошибка при загрузке индексов Монго. Если вы столкнулись с этой проблемой, возможно, у вас есть две проверки, которые называются одинаково и нарушают индекс, который мы пытались добавить. Пожалуйста, исправьте проблему, удалив конфликт. Если это что-то еще, пожалуйста, сообщите нам об этом на Github!

com.mongodb.MongoTimeoutException: истекло время ожидания после 10000 мс в ожидании сервера, который соответствует AnyServerSelector{}. Клиентское представление состояния кластера: {type=Unknown, серверы =[{address=localhost:27017, type=Unknown, состояние =Connecting, исключение ={com.mongodb.MongoException$Network: исключение, открывающее сокет}, вызванное {java.net.ConnectException: соединение отклонено}}]

Что я здесь скучаю?

РЕДАКТИРОВАТЬ:

Дело в том, что я собираю файл jar seyren. У меня действительно есть seyren база данных, которая создается в моем экземпляре Монго... Так что должно быть установлено соединение.

2 ответа

Как я понял, вы используете Docker Toolbox на Mac. Панель инструментов Docker запущена не на вашем локальном хосте (она работает на экземпляре виртуальной машины VBox). И вы должны использовать IP этой машины вместо localhost. Вы можете получить это используя docker-machine env команда в терминале. IP из DOCKER_HOST Переменная env будет IP вашего хоста экземпляра mongoDB.

Нашел решение. Мне пришлось использовать изображение mongo:2.7, так как это единственное работоспособное изображение.

Другие вопросы по тегам