📅  最后修改于: 2023-12-03 15:23:42.239000             🧑  作者: Mango
在使用 Docker 运行 PostgreSQL 数据库时,备份数据是非常重要的一项工作,以确保数据不会丢失。在本文中,我们将介绍如何备份 PostgreSQL Docker 数据库。
在备份数据之前,我们需要准备以下工具:
docker-compose
工具pg_dump
工具如果您的系统尚未安装这些工具,则需要先进行安装。
首先,在 docker-compose
文件夹中创建一个新的 backup
文件夹用于存储备份文件。
mkdir backup
接下来,在 docker-compose.yml
文件中添加以下内容:
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
volumes:
- db-data:/var/lib/postgresql/data
backup:
image: postgres
volumes:
- ./backup:/backup
- db-data:/var/lib/postgresql/data
depends_on:
- db
command: >
bash -c "pg_dumpall -h db -U postgres | gzip > /backup/db.gz"
说明:
db
服务是我们要备份的 PostgreSQL 数据库服务。backup
服务是备份服务,用于备份 db
服务中的数据。db
服务使用了一个名为 db-data
的数据卷用于存储数据库文件。backup
服务也使用了一个名为 db-data
的数据卷,因为数据卷是可以共享的。backup
服务的命令是执行 pg_dumpall
命令并将结果压缩到 /backup/db.gz
文件中。然后在命令行中运行以下命令:
docker-compose up backup
这将启动 backup
服务并备份数据库。备份文件将存储在 ./backup/db.gz
中。
要恢复 PostgreSQL 数据库,我们需要使用以下命令:
cat backup/db.gz | docker exec -i {container_name} sh -c 'gzip -d | psql -U postgres'
其中 {container_name}
是您要还原数据的容器名称。
在本文中,我们介绍了如何备份 PostgreSQL 数据库 Docker。备份数据是非常重要的一项工作,以确保数据不会丢失。希望这篇文章对您有所帮助。