Данные базы пропали после пересоздания контейнера
На тестовом стенде PostgreSQL запущен так:
docker run -d --name pg -e POSTGRES_PASSWORD=secret postgres:16
В базу залили тестовый набор данных. Через неделю понадобилось поменять переменную окружения, инженер выполнил:
docker rm -f pg
docker run -d --name pg -e POSTGRES_PASSWORD=other postgres:16
База поднялась пустой, все данные пропали.
Почему?
- Данные лежали в записываемом слое контейнера и удалились вместе с ним: для сохранения нужен volume или bind-mount на каталог данных
- Смена значения `POSTGRES_PASSWORD` заставляет образ инициализировать кластер заново и затирает каталог данных: при прежнем пароле данные бы никуда не делись
- Нужно было останавливать контейнер через `docker stop`, тогда PostgreSQL сбросил бы данные в образ
- Контейнер не был запущен с политикой `--restart=always`, поэтому Docker очистил его состояние
