У меня сегодня печальная история. Я потерял все мои изменения в базе данных, которые я сделал с субботы.Безопасность данных докеров
Мы используем mongodb (3.4.1), и в этом конкретном случае он работал внутри своего официального контейнера докеров с отображаемым объемом.
Контейнер был создан с Докером-композом, docker-compose.yml
выглядит следующим образом:
version: "2"
services:
database:
image: mongo:3.4.1
restart: always
container_name: cvs-db
volumes:
- ~/data/db:/data/db
ports:
- "27017:27017"
~/data/db
просто обычная папка, созданная давно.
После того, как я перезапустил контейнер (с docker-compose up -d
), данные вернулись в состояние, которое было два дня назад. Даже удаления исчезли.
Вчера мы очистили все коллекции и начали заполнять их реальными данными, и теперь они содержат все те данные, которые мы недавно удалили.
Итак, мои вопросы: 1) как защитить данные mongodb от таких бедствий? 2) может кто-то сказать точные условия, которые могут привести к этим результатам? 3) как восстановить данные?
EDIT: после некоторых исследований, я думаю, что это была ошибка, связанная с докером. Но все вопросы по-прежнему актуальны :)
Можете ли вы рассказать о термине «отображаемый объем»? Как именно вы создавали/прикрепляли этот том? Существуют различные способы сделать тома в Docker, и каждый из них имеет разные поведения/ограничения/риски. –
Я использовал docker-compose: томов: - ~/data/db:/data/db –
Это ничего не говорит нам, пожалуйста, отредактируйте этот вопрос и предложите более подробную информацию о том, как тома была сопоставлена или создана. –