Ale*_*lex 1 postgresql pg-dump docker
我们通常必须从多个不同版本的数据库中 pg_dump。我想在具有正确 Postgres 版本的 Docker 容器内运行命令,并将转储输出输出到我的文件而不是容器。
我以为我会像这样实现它;
docker run -it postgres:9.6.6-alpine pg_dump --file backupFile.bak --dbname=CONNECTIONSTRING --verbose --format=c --blobs > backupFile.bak
Run Code Online (Sandbox Code Playgroud)
然而,这只是将 pg_dump 命令的终端输出输出到文件,而不是实际的转储。我最终得到一个本地文件,它只是命令的详细日志。
我错过了什么?
我可以在这里想到两个选择:
将卷安装到本地文件夹并将文件转储到那里。当容器退出时,该文件仍将在主机上。您不需要以交互方式运行容器。该命令可能如下所示(未测试):
docker run --rm -v <host_folder>:<container_folder> postgres:9.6.6-alpine pg_dump --file backupFile.bak --dbname=CONNECTIONSTRING --verbose --format=c --blobs
Run Code Online (Sandbox Code Playgroud)<host_folder>容器停止后,备份文件仍将保留。
docker cp以将文件从容器中拉出到本地文件系统,然后停止容器。可能不像选项 1 那样容易或有效。| 归档时间: |
|
| 查看次数: |
3163 次 |
| 最近记录: |