Tag: 还原

如何在docker中恢复postgres?

我创build了这样的备份: docker exec DOCKER pg_dump -U USER -F t DB | gzip > ./FILE.tar.gz docker exec DOCKER pg_dump -U USER -F t DB | gzip > ./FILE.tar.gz 如果数据库在容器中运行,那么恢复数据库的最佳方法是什么?

在docker中恢复postgres

我遇到了很多尝试使用docker exec和postgresql psql实用程序来恢复在docker 1.3中运行的postgresql安装的一系列问题。 我有一个备份运行确定通过docker exec mycontainer pg_dumpall –clean –user=postgres –no-password > /tmp/backup.sql 。 我遇到了尝试恢复的问题,其中包括: docker exec仅在容器正在运行时才起作用,但psql无法用主动连接的客户端正确恢复 pg_ctl stop将退出postgres服务器进程,该进程会停止您正在运行的主容器和docker exec进程。 docker exec以root身份运行,但是pg_ctl必须以postgres身份运行(我试图使用pg_ctl来停止postgres,这样恢复就可以运行) 所以考虑到postgresql容器正在运行并为应用程序提供活动连接的情况,我该如何恢复? 寻找干净停止,运行恢复,启动等的细节 Env是docker 1.3,postgresql 9.4,数据/var/lib/postgresql/data在容器中的/var/lib/postgresql/data上的/var/lib/postgresql/data中。 在docker主机文件系统上有一个有效的.sql备份文件。 更新: FYI我可以开放任何解决scheme,无论是否涉及docker exec 。 如果我应该运行一个单独的容器并链接到主postgresql容器,并通过TCP与它交谈,例如,只要我得到一些可行的stream程就没有问题。 这是我迄今为止。 build议欢迎。 这是一个bash脚本(在构build过程中插入了一些胡须variables),用于在Docker主机上运行。 #!/bin/bash docker_sql() { docker exec \ –interactive \ –tty \ "${container}" \ psql –user="${user}" –no-password –file="$1" } export DOCKER_HOST=tcp://localhost:2375 […]