Я начал создавать POC для приложения, и оно генерировало много полезных данных в mongodb, который был размещен на localhost . Я подключился к этим данным, используя mongoshell и MongoDb Compass.
Недавно я разделил приложение монолита на набор микросервисов и ввел в него докер. Также добавлен монго в docker-compose в качестве зависимости. Все микросервисы и контейнер Монго были в состоянии запустить и запустить логику.
Однако приложение не нашло никаких ссылок на старые данные, так как в размещенном контейнере mongodb отсутствовали коллекции localhost. Он ведет себя как свежая база данных. Я не сделал никаких изменений со ссылкой на ipBinding
Файл подключения mongodb в приложении указывает на контейнер mongodb (ранее это был mongodb://localhost:27017/${dbName}
).
docker-compose:
version: '3'
services:
mongo:
image: 'mongo'
ports:
- "27017:27017"
some-api:
build: ./some-api
ports:
- 8005:8105
Файл подключения Mongodb:
const url = `mongodb://mongo:27017/${dbName}`;
const client = await MongoClient.connect(url, { useNewUrlParser: true });
Итак, мне нужна помощь с 3 вопросами:
- Как контейнер mongo использует данные localhost или указывает на эти данные?
- Как сохранить данные, сгенерированные из докер-контейнеров, когда контейнер выключается и по-прежнему видит их на сервере localhost mongo?
- Поскольку контейнер mongo работает на Ip, могу ли я использовать этот ip дляподключить его с помощью Mongo Compass после запуска и запуска контейнера?
Спасибо!