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