Сначала необходимо создать базу данных.
Если вы хотите сделать это автоматически для новых каталогов данных, то официальный образ Docker Postgres может сделать это, поместив Сценарии инициализации с расширением .sql
в * 1006.* каталог.
Например, создайте файл со следующим содержимым:
CREATE USER custom_user;
CREATE DATABASE custom_db;
GRANT ALL PRIVILEGES ON DATABASE custom_db TO custom_user;
и сохраните его в /docker-entrypoint-initdb.d/create-db.sql
в контейнере, например, с COPY
в Dockerfile
.Сценарии с расширением .sql
внутри этого каталога будут выполняться только в том случае, если каталог DATA пуст, а несколько файлов будут выполняться в алфавитном порядке имен файлов.
Если вы хотите настроить его вручную, вы можететакже выполните это с помощью утилиты createb
createdb [connection-option...] [option...] [dbname [description]]
или подключившись к базе данных postgres
, и используйте команду CREATE DATABASE ...
, например,
docker exec -it store psql -U postgres -c 'CREATE DATABASE customname;'
Есливы подключаетесь в интерактивном режиме, как в вашем вопросе, вы можете сделать следующее:
$ docker exec -it store psql -U postgres
psql (11.3)
Type help for help.
postgres=# CREATE DATABASE customname;
CREATE DATABASE
postgres=# \c customname
Последняя команда соединит вас с базой данных customname
.