Данные Mongo в Docker
Данные Mongo лежат в томе,
и новый контейнер сервера
их не стирает.
Файлы базы пишутся
в хранилище dbdata,
а не только в слой
работающей копии.
Остановка проекта
без удаления тома
оставляет документы
на месте.
Сервис db
на mongo:8.3
монтирует том dbdata
в /data/db
без пароля при старте:
services:
db:
image: mongo:8.3
volumes:
- dbdata:/data/db
volumes:
dbdata:
После фонового подъёма
положим документ
через клиент
в базу app
и коллекцию notes:
docker compose up -d
Запись со словом hello:
docker compose exec db mongosh --quiet app --eval "db.notes.insertOne({ text: 'hello' })"
Контейнеры убирают без флага удаления томов:
docker compose down
Новый фоновый подъём
снова подключит dbdata.
Чтение первого документа
показывает текст hello:
docker compose up -d
Проверка внутри сервиса:
docker compose exec db mongosh --quiet app --eval "db.notes.findOne()"
Подключите том ledger к /data/db для сервиса db без пароля и запишите документ в базу log.
Уберите контейнеры без удаления тома, поднимите проект снова и убедитесь, что документ в log на месте.