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

giv*_*Job 6 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.
Run Code Online (Sandbox Code Playgroud)

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

postgres=# \! pg_dump -U user hidb -f /tmp/my_db_dumpa.sql;
Password: 
Run Code Online (Sandbox Code Playgroud)

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

小智 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
Run Code Online (Sandbox Code Playgroud)

一旦确认

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

sudo docker cp {docker name}:/tmp/{file name of the sql file} ~/
Run Code Online (Sandbox Code Playgroud)

并转到主页并验证您的转储物理文件是否已生成