Comments 13
Самое интересное при работе PG в docker - это переход на новую версию PG.
Причем если образ postgres:latest, то контейнер может и сам обновится, и далее все "сломается". Что дальше делать с данными ?
Переход на новую версию на хост системы подробно описан в документации, а тут ?
Из всех утюгов звучало не использовать тег latest.
Нормальные люди всегда могут из бекапа поднять.
Переход сводится к тому, чтобы:
1. выключить пг
2. обновить пакеты
3. включить пг
С докером это проще:
1. спулить образ с новой версией (бд ещё работает, а мы уже обновления скачали)
2. остановить контейнер со старой пг
3. запустить контейнер с новой и внутренний процесс обновления пройдёт
4. Можно сразу запустить старый пг, если что-то пошло не так (данные из бекапа или снапшота)
Ну а ещё можно интересные штуки делать:
1. после выключения контейнера сделать снапшот тома с данными меньше чем за секунду
2. восстановление из снапшота меньше чем за секунду
3. естественная дедупликаия данных
4. в случае успешного обновления удаление снапшота
используйте для обновления докерный pg_upgrade и не используйте образы postgres:latest
- используйте postgres:N
, где N - номер версии. Например postgres:14
Когда ждать статью, ставим Docker в Docker?:)
Дак есть же уже... https://hub.docker.com/_/docker
Docker in Docker!
%USERPROFILE%> docker pull postgres
no matching manifest for windows/amd64 in the manifest list entries
Так просто, что даже сэкономило мне место на диске. Спасибо!
Статья написана из обрывков(фрагментов). Но как туториал/гайд расценивать нельзя, т.к. не возможно прийти к поставленной цели через пошаговое, представленное тут, руководство.
Установка PostgreSQL с помощью Docker