从Docker容器内的PostgreSQL数据库生成转储文件

时间:2018-04-18 05:33:11

标签: postgresql docker

我正在Docker容器中的PostgreSQL数据库生成转储文件,我希望将其放入/tmp文件夹。

在Docker容器中打开shell之后,我运行了这些命令:

sh-4.2# su - postgres
Last login: Wed Apr 18 05:22:26 UTC 2018 on pts/1
-bash-4.2$ psql
psql (9.3.15)
Type "help" for help.

然后我执行了此命令以在/tmp文件夹中生成转储文件:

postgres=# \! pg_dump -U user hidb -f /tmp/my_db_dumpa.sql;
Password: 

我在请求时提供了正确的密码,但主机环境(Ubuntu Linux)中的/tmp文件夹中没有物理文件。感谢

1 个答案:

答案 0 :(得分:4)

运行docker run su - postgres并使用下面的命令。

-bash-4.2$ pg_dump -U {username of the selected db} {dbname} -f /tmp/{file name whatever you want}.sql

接下来执行下面的内容,看看是否生成了这个转储文件

-bash-4.2$ cd /tmp/
-bash-4.2$ ls

确认后

打开另一个终端并确保docker正在运行并执行以下命令将转储文件复制到桌面的物理文件中

sudo docker cp {docker name}:/tmp/{file name of the sql file} ~/

并转到主页并验证天气是否生成转储物理文件