纳马斯蒂,
我使用以下命令为我的数据卷创建了 backup.tar 文件:
docker run --rm --volumes-from dockerproject_gobidb_1 -v C:\Users\pp\Desktop\dockerProject:/backup ubuntu tar cvf /backup/backup.tar /var/lib/postgresql/data
为了恢复卷,我使用了以下命令:
docker run -v dockerproject_postgresGobiData:/var/lib/postgresql/data --name dbstore2 ubuntu /bin/bash
然后
docker run --rm --volumes-from dbstore2 -v C:\Users\hp\Desktop\dockerProject:/backup ubuntu bash -c "cd /var/lib/postgresql/data && tar xvf /backup/backup.tar --strip 1"
但是,当我运行时
'docker-compose up --detach'
以下是我的撰写文件:
version: '3'
services:
#agar gobidb nhi chaltaa hai to hum db kaa upyog kar sakte hai
gobidb:
image: postgres
restart: always
environment:
- POSTGRES_PASSWORD=yavdhesh
- POSTGRES_USER=yavdhesh
volumes:
- postgresGobiData:/var/lib/postgresql/data
ports:
- 8880:5432
adminer:
image: adminer
restart: always
ports:
- 8800:8080
#postgres:
# image: postgres # this will use httpd:latest
# environment:
# - POSTGRES_PASSWORD=example
# restart: always
# postgresGobiData:<space denaa aavashyak hai>{} ye rakhene se hum pehle se sthit volume kaa upyog kar paayenge
volumes:
postgresGobiData: {}
最佳答案
经过一番苦思冥想,我终于得到了答案。 我们还可以自动化该过程。
您可以使用以下命令手动备份您的(postgres)数据-
使用
exec -it
命令打开正在运行的数据库容器。docker container exec -it <container-name> bash -l
创建一个
/backup
目录,然后运行以下命令。pg_dump -h localhost -U postgres yavdhesh -Fc > /backup/db.dump
或者您也可以运行以下命令。
pg_dumpall -l "yavdhesh" -U "yavdhesh" -W > db.dump
备份您的数据。
psql -d yavdhesh -U yavdhesh -f db.dump
或者您可以运行以下命令:
pg_restore -d db_name /backup/dump_name.tar -c -U "yavdhesh"
这些命令专门用于 postgres,但您可以引用这些命令来创建您自己的命令。 希望对您有所帮助。
关于postgresql - 如何在 Windows 10 docker 上从 tar 文件恢复 postgres 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57949133/