Не удается подключиться к подключенному экземпляру 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, так как это единственное работоспособное изображение.