如何使用卷从 docker 中的转储或 sql 文件恢复数据库?

Yes*_*ave 7 postgresql docker docker-compose docker-volume

我正在尝试在 docker 中运行我的数据库,其中已经有一些数据,但是当我在 docker 中运行它时,它给出了空的 .. 那么如何在 docker PostgreSQL 映像中恢复我的数据库。

ieg*_*gel 13

首先,启动您的 docker posgtres 容器。然后执行以下命令:

docker exec -i <CONTAINER> -U <USER> -d <DB-NAME> < <PATH-TO-DUMP>

  • <CONTAINER> : 容器 ID 或容器名称
  • <USER>: PostgreSQL DBMS 用户。如果您使用没有特定配置的标准 postgres 图像,则用户是postgres
  • <DB-NAME>: 数据库的名称。这个数据库应该已经存在。您可以在运行 postgres 容器时通过指定一个名为的环境变量来创建一个数据库POSTGRES_DB
  • <PATH-TO-DUMP>: 在此处指定转储文件的路径

例子: docker exec -i mypostgres psql -U postgres -d mydb < backup.sql

希望这可以帮助。

  • 我收到此错误:-OCI 运行时执行失败:执行失败:container_linux.go:346: 启动容器进程导致“执行:\”-U\”:在 $PATH 中找不到可执行文件”:未知 (2认同)
  • @ieggel第一行在“&lt;CONTAINER&gt;”和“-U”之间缺少“psql”命令,这就是 Yesha Dave 失败的原因 (2认同)