繁体   English   中英

如何在docker中恢复postgres?

[英]How to restore postgres within a docker?

我创建这样的备份: 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 exec -it <CONTAINER> gunzip < backup.tar.gz | pg_restore -U <USER> -F t -d <DB>

如果容器是面向公共的,并且pg_hba.conf中允许远程连接postresql,则远程还原也可用:

gunzip < backup.tar.gz | pg_restore -U <USER> -F t -d <DB> -h <HOST_IP> -p 5432

根据经验,最好记录特定于项目的备份和恢复命令。

如何备份正在运行的PostgreSQL容器中存在的数据


  1. 在根目录中创建一些文件夹

     mkdir -p '/myfolder/bdbackup' 
  2. 下载您正在使用的postgres图像并执行以下命令

     docker run --name demo1 -e POSTGRES_PASSWORD=passowrd -v /myfolder/bdbackup:/var/lib/postgresql/data -d postgres docker exec -it demo1 psql -U postgres 
  3. 备份将存储在以下文件夹/myfolder/bdbackup

  4. 您可以随时终止容器并停止容器,但数据将存储在主机中。
  5. 并再次使用相同的命令重新运行postgres容器

     docker run --name demo2 -e POSTGRES_PASSWORD=passowrd -v /myfolder/bdbackup:/var/lib/postgresql/data -d postgres docker exec -it demo1 psql -U postgres 

    并执行以下查询select * from emp;

  6. 你可以看到数据已经恢复......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM