Вы можете создать дамп из вашего локального / удаленного postgres с помощью следующей команды:
pg_dump dbname > dbname.sql
Далее вам нужно будет смонтировать этот файл dbname.sql
в следующем каталоге вашего контейнера, возможно, через docker-compose или docker run -v
:
/docker-entrypoint-initdb.d/
При запуске контейнера он восстанавливает файл в базе данных, как вы можете видеть в docker-entrypoint.sh для изображения postgres. Имеет возможность запуска файлов sql, sql.gz, sh.
Например, предположим, у вас есть dump.sql
внутри /home/foo/database_files
, и вам нужно восстановить этот dump.sql в контейнер, после чего вы можете выполнить следующую команду:
dokcer run -v /home/foo/database_files:/docker-entrypoint-initdb.d/ -d --name new_postgres_container postgres
Затем запустите docker ps
, чтобы убедиться, что ваш новый контейнер работает, и вы также можете проверить журналы, используя docker logs new_postgres_container
В качестве альтернативы, вы можете смонтировать локальный путь к каталогу postgres в ваш контейнер при его создании с помощью опции -v
, которая будет передана команде docker run
, или добавить ее в docker-compose.yml