2

我使用 docker-compose 来启动我的应用程序。一个容器使用 postgresql。

我创建了一个在tar.gz文件中备份容器卷的脚本。

备份.tar.gz

├── base
├── _data
├── ...
├── pg_hba.conf
└── old.txt

如果我检查我的卷中的文件没有 old.txt

sudo tree -L 1 /var/lib/docker/volumes/application_postgresql/_data 
├── base
├── _data
├── ...
└── pg_hba.conf

我尝试停止我的容器 ( docker-compose stop db),解压缩/var/lib/docker/volumes/application_postgresql/_data并重新启动我的容器 ( docker-compose restart db)。但它似乎没有用。

文件看起来不错

sudo tree -L 1 /var/lib/docker/volumes/application_postgresql/_data 
├── base
├── _data
├── ...
├── pg_hba.conf
└── old.txt

但我的容器不想启动

db_1 | initdb: directory "/var/lib/postgresql/data" exists but is not empty
db_1 | If you want to create a new database system, either remove or empty
db_1 | the directory "/var/lib/postgresql/data" or run initdb
db_1 | with an argument other than "/var/lib/postgresql/data".

如何恢复我的 postgresql 卷?

我知道使用 pgdump 解决方案会更优雅。但我想创建一个不了解环境的备份脚本。

我可以使用什么策略?

4

0 回答 0