【问题标题】:How to dump from remote postgres database to a directory inside a docker container?如何从远程 postgres 数据库转储到 docker 容器内的目录?
【发布时间】:2022-01-19 01:14:26
【问题描述】:

我在postgresql://postgres:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME 上有一个远程数据库

我有一个名为 local_pg_container 的 docker 容器正在运行,它使用 postgres 的映像运行。

我想将远程数据库转储到本地容器中

我愿意:

$ docker exec local_pg_container pg_dump --dbname=postgresql://postgres:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME -f ~/backup.sql

但它是这么说的

pg_dump: error: could not open output file "/home/MY_HOST_USER/backup.sql": No such file or directory

首先,它似乎是试图将备份文件放在docker容器的宿主服务器中,而不是容器内

其次,它说没有这样的文件。

有什么办法吗?

【问题讨论】:

  • 假设您使用 docker run -p 选项或 Compose ports: 启动数据库容器,您可以使用 psqlpg_dump 连接到它,与执行完全远程操作的方式相同数据库。您无需在此处执行任何特定于 Docker 的操作。

标签: linux postgresql docker pg-dump


【解决方案1】:

这行得通:

docker exec local_pg_container bash -c "pg_dump --dbname=postgresql://postgres:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME -f ~/backup.sql"

可以修改为直接通过管道导入psql

docker exec local_pg_container bash -c "pg_dump --dbname=postgresql://postgres:DB_PASSWORD@DB_HOST:DB_PORT/DB_NAME | psql -U postgres DB_NAME"

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2023-04-02
    • 2020-09-05
    相关资源
    最近更新 更多