首页 > 解决方案 > 如何从 Windows 10 docker 上的 tar 文件恢复 postgres 数据

问题描述

纳马斯蒂,

我使用以下命令为我的数据卷创建了 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: {}

我收到以下错误: 在此处输入图像描述

请建议我。我想重用 backup.tar 中的数据 在此处输入图像描述

标签: postgresqldockerdocker-compose

解决方案


脚步:

使用备份:

pg_dump -h localhost -U postgres  shridhar -Fc > /backup/db.dump

并使用恢复:

pg_restore -d db_name /backup/dump_name.tar -c -U "shridhar"

推荐阅读