Рейтинг:0

Как подключить серверную часть к док-контейнеру mongodb

флаг cn

Я сделал этот файл для создания докеров, как написано на docker hub/mongodb то я использую команду docker-compose up -d что довольно стандартно для запуска контейнера.

# Использовать root/example в качестве учетных данных пользователя/пароля
версия: «3.1»

Сервисы:

  монго:
    изображение: монго
    перезапуск: всегда
    среда:
      MONGO_INITDB_ROOT_USERNAME: корень
      MONGO_INITDB_ROOT_PASSWORD: пример

  монго-экспресс:
    изображение: монго-экспресс
    перезапуск: всегда
    порты:
      - 8081:8081
    среда:
      ME_CONFIG_MONGODB_ADMINUSERNAME: корень
      ME_CONFIG_MONGODB_ADMINPASSWORD: пример
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/

bf4a595a508d mongo-express "tini -- /docker-ent ¦" Около часа назад Наверх Около часа 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp вход-приложение_mongo-express_1
b5fcc2d2386d mongo "docker-entrypoint.s¦" Около часа назад Наверх Около часа 27017/tcp вход-приложение_mongo_1

Теперь я пытаюсь подключить к нему свой бэкенд.

С postresql это будет что-то вроде postgresql://root:example@localhost:8081/db_name

Что было бы с монго?

PS: я могу подключиться к базе данных в своем веб-браузере по адресу http://localhost:8081, но я не могу подключиться к базе данных из командной строки с помощью монго.

Michael Hampton avatar
флаг cz
У вас уже есть правильная строка подключения прямо в файле `docker-compose.yml`!
Рейтинг:1
флаг cn

От официальная страница докер-хаба:

Сервер MongoDB на изображении прослушивает стандартный порт MongoDB, 27017, поэтому подключение через сети Docker будет таким же, как подключение к удаленному mongod.

Вы не указываете, откуда вы подключаетесь и как. Если это другой контейнер, вы можете использовать порт напрямую, иначе вам нужно сначала открыть его.

Что касается строки подключения, то она обычно взята из официальные документы:

mongo mongodb://$[список хостов]/$[база данных]?authSource=$[authSource] --username $[имя пользователя]

Вы также можете использовать монго-экспресс контейнер, который вы использовали для получения подробной информации выше или из README концентратора докеров. Итак, в вашем случае:

монгодб: // корень: пример @ монго: 27017/

Если ваш клиент не находится в контейнере докеров в том же стеке, вам необходимо открыть порт 27017 с первого монгодб контейнер:

порты:
    - "27017:27017"
Pierre Lovergne avatar
флаг cn
Порт забыл выставить.. Большое спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.