Как подключить докер MongoDB от Studio 3T?

Я использую образ докера https://hub.docker.com/_/mongo/ (последняя версия MongoDB)

Я запускаю команду

docker run --name some-mongo -d mongo

Затем я устанавливаю Studio 3T, я ввожу информацию о подключении, как это

но я не могу подключиться Какое правильное соединение необходимо объявить в Studio 3T в этом случае? Как подключить экземпляр MongoDB (докер) к Studio 3T?

7 ответов

Решение

Вам нужно экспортировать порт, который вы хотите использовать в команде Docker. например

docker run -p 127.0.0.1:27017:27017 --name some-mongo -d mongo

Это открывает порт контейнера на вашем хост-компьютере.

  • Нажмите Новое соединение.

  • Введите имя подключения

  • Нажмите на From URI

  • Введите URI в следующем формате mongodb://{username}:{password}@{ip_address}:{port}/?authSource=admin

  • Нажмите OK

  • Нажмите Test Connection

  • Работает?

    • Нет: проверьте свое имя пользователя, пароль и т. Д.
    • да: Поздравляю!

Я запускал mongodb с wsl2 и докером, поэтому мне нужно было просто добавить «из uri» и настроить ip_adress с ip из wsl2.

Объяснение:

  1. Ури: Эта строка подключения — это то, как мы можем поговорить с robo 3t, чтобы понять, как подключиться к нашему серверу mongodb.
  2. ip_address: поскольку докер создает контейнеры, похожие на серверы, каждый контейнер имеет ip_adress, поэтому, чтобы получить доступ к этому серверу mongodb, нам нужно найти ip_adress из нужного нам контейнера.

Я использовал этот URI:

mongodb://{имя пользователя}:{пароль}@{ip_адрес}:{порт}/?authSource=admin

имя пользователя = MONGO_INITDB_ROOT_USERNAME

пароль = MONGO_INITDB_ROOT_PASSWORD

port = 27017(порт контейнера Docker будет настроен на параметр Docker "-p")

ip_address = IP от wsl2 в моем случае или localhost, если вы запускаете докер локально.

Это была моя команда для запуска контейнера в первый раз:

docker container run -d -e MONGO_INITDB_ROOT_USERNAME=mongouser -e MONGO_INITDB_ROOT_PASSWORD=mongopwd -p 27017:27017 -v mongo_vol:/data/db mongo:4.4.3

Если приведенные ниже ответы вам не подходят, попробуйте следующее:

Нашел решение в https://jquery.develop-bugs.com/article/10214076/How+to+connect+MongoDB+docker+by+Studio+3T%3F

Я использую образ докера https://hub.docker.com/_/mongo/ (последняя версия MongoDB) Я запускаю команду docker run --name some-mongo -d mongo Затем я устанавливаю Studio 3T и ввожу такую ​​информацию о подключении, но Я не могу подключиться. Какое правильное соединение необходимо декларировать в Studio 3T в этом случае? Как подключить экземпляр MongoDB (докер) от Studio 3T?

Вам нужно экспортировать порт, который вы хотите использовать в своей команде docker. например

docker run -p 127.0.0.1:27017:27017 --name some-mongo -d mongo

Это открывает порт контейнера на вашем хост-компьютере.

Вам нужно найти IP-адрес, на котором запущен контейнер Docker. На Mac докер работает в фоновом режиме внутри виртуальной машины Linux, имеющей собственный IP-адрес. Таким образом localhost работать не будет. Чтобы найти IP,run docker-machine env default и установите этот IP в поле Сервер.

Ранее на этой неделе у меня возникла проблема с подключением Studio 3T к MongoDB, и она заняла весь мой рабочий день, поэтому я отказался от использования Studio 3T, чтобы освободить время для других дел и альтернативы. Сегодня я нашел короткий видеоурок от Studio 3T о том, как подключить Studio 3T к MongoDB. Следуя инструкциям, я был удивлен, что соединение было установлено успешно.

Я рекомендую вам посмотреть это видео: https://www.youtube.com/watch?v=_Ka3-HGNlYE.

Если это вам поможет, не забудьте отметить этот ответ.

для тех, кто работает в Windows, проверьте диспетчер задач и убедитесь, что у вас нет локальной установки сервера mongo db, затем используйте localhost в строке адреса / подключения

Вам нужно найти IP-адрес, на котором работает контейнер Docker. На Mac Docker работает в фоновом режиме внутри виртуальной машины Linux, которая имеет свой собственный IP. таким образом localhost не будет работать.

Чтобы найти IP, запустите docker-machine env default и установите этот IP в поле Сервер.

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