我使用 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 解决方案会更优雅。但我想创建一个不了解环境的备份脚本。
我可以使用什么策略?