You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Docker容器内的PostgreSQL数据库生成转储文件至/tmp目录

在Docker容器内导出PostgreSQL数据库到/tmp目录

分享两种可行的方法,帮你完成数据库转储并保存到/tmp目录:

方法1:直接在宿主机执行(最便捷)

不用进入容器shell,直接用docker exec一键完成备份,文件直接存到宿主机的/tmp:

docker exec -t <你的容器名或ID> pg_dump -U user hidb > /tmp/my_db_dump.sql

这里的-t参数是为了避免输出乱码,执行后备份文件就出现在宿主机的/tmp目录里了。

方法2:进入容器内部操作

如果你习惯进到容器里一步步来,可以按照下面的步骤修正你的操作:

  1. 先进入容器的shell:
docker exec -it <你的容器名或ID> /bin/bash
  1. 切换到postgres用户(这步和你之前的操作一致):
su - postgres

这时会看到登录提示:Last login: Wed Apr 18 05:22:26 UTC 2018 on pts/1
3. 划重点:不用进入psql交互环境,直接在postgres用户的bash下执行备份命令:

pg_dump -U user hidb -f /tmp/my_db_dump.sql

输入正确密码后,备份文件就会保存在容器内的/tmp目录。如果要把这个文件拿到宿主机,再执行这条命令:

docker cp <你的容器名或ID>:/tmp/my_db_dump.sql /tmp/

关于你之前操作的小问题

你之前进到psql里用\!执行系统命令,这种方式理论上可行,但psql的交互环境可能会导致密码输入或输出显示不完整,所以更推荐直接在bash环境下跑备份命令,避免这类麻烦。

内容的提问来源于stack exchange,提问作者giveJob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:32:27