Сохранность данных в Docker
Остановка проекта без удаления тома оставляет ключи, и следующий старт их видит.
Контейнеры убирают,
а хранилище dbdata
остаётся на диске.
Файл описания и образ
при этом не стираются:
меняется только запись
о работающей копии.
Сервис db с томом
dbdata
на redis:8
и журналом на диске
описывают так:
services:
db:
image: redis:8
command: ["--appendonly", "yes"]
volumes:
- dbdata:/data
volumes:
dbdata:
После фонового подъёма
кладут строку hello
под ключом msg:
docker compose up -d
Запись ключа внутри сервиса:
docker compose exec db redis-cli SET msg hello
Контейнеры проекта убирают без флага удаления томов:
docker compose down
Новый фоновый подъём
с тем же файлом снова
подключит dbdata.
Чтение ключа msg
должно вернуть hello:
docker compose up -d
Проверка значения внутри сервиса:
docker compose exec db redis-cli GET msg
Запишите строку keep под ключом mark в томе dbdata, уберите контейнеры без удаления тома и поднимите проект снова.
Убедитесь, что ключ mark по-прежнему возвращает keep.