leadsdoit/postgres
PostgreSQL + script backup/restore
128
Данный образ основан на образе postgres:16.2-alpine3.19
но с возможность делать удобно дампы и восстановление из них.
Дампы хранятся в папке /backup
.
Для доступа к полученным дампам необходимо подключить внешнее хранилище
-v ./dump:/backup
Пример docker compose
version: '3.8'
services:
db:
image: leadsdoit/postgres-16:1.0
container_name: docker_db_pgsql
restart: always
volumes:
- "./db:/var/lib/postgresql/data"
- "./dump:/backup"
environment:
POSTGRES_DB: ${DB_DATABASE}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
dump
Чтоб создать бекап из базы в текущем контейнере
Если через docker
docker exec -it <имя контейнера> dump
Если создано через docker compose
docker compose exec <имя сервиса> dump
restore
Чтобы залить в контейнер дамп, скопируйте в подключенный диск дамп или запустите контейнер и скопируйте его через команду
docker cp <путь к файлу> <контейнера>:/backup/<имя дампа>
Если через docker
docker exec -it <имя контейнера> restore
Если создано через docker compose
docker compose exec <имя сервиса> restore
Далее надо выбрать один из существующих дампов
Все те же что и в родительском образе postgres
Обязательна. При первом запуске контейнера задает пароль главного пользователя
При первом запуске контейнера создаст главного пользователя.
Если не указать будет postgres
При первом запуске контейнера создаст базу данных с этим именем.
Если не указать - будет равно POSTGRES_USER
docker pull leadsdoit/postgres