хранилище Postgres локально для контейнера?Если это так, то удаление контейнера и его повторное создание приведет к сбросу вашей БД.Если ваши данные монтируются из локальной или сетевой папки, то их сброс означает выполнение команд на psql
. У вас есть несколько вариантов:
- попасть внутрь контейнера с оболочкой
docker exec -it <container-id> /bin/sh
, затем запустите psql и выполните все, что вы хотите, в командной строке psql.
- запустите psql непосредственно в docker
docker exec -it <container-id> psql -U <username> -d <database-name>
- локально установил psql и запустил его для доступа к экземпляру postgres в docker
psql -U <username> -h localhost
- запускать команды с помощью psql
Вы не можете DROP и СОЗДАТЬ базу данных по одной команде, к сожалению, но вы можете запустить 2 отдельные команды
docker exec -it <container-id> psql -U <username> -d postgres -c "DROP DATABASE <dbname>;"
docker exec -it <container-id> psql -U <username> -d postgres -c "CREATE DATABASE <dbname>;"