比方说,我删除一个PostgreSQL泊坞窗容器,只有在这里有它的数据:如何从已删除的Docker容器中恢复数据?如何重新连接到数据?
$ docker inspect postgres1
...
"Source": "/var/lib/docker/volumes/4948af..../_data"
"Destination": "/var/lib/postgresql/data"
$ docker rm postgres1
如果没有其他容器引用量,我不能重新连接到这个体积--volumes-from
更多,即使文件仍然在磁盘上某处:/var/lib/docker/volumes/...
这带来了我两个问题:
- 什么是定位数据的最好的方式,如果我不知道目录的卷UUID?
- 做
ls /var/lib/docker/volumes/
向我展示了这样一百个像这样f77c92...
。 - 使用
find . -name "*postgres*"
我仍然得到了许多像这样的结果... 10e0dc/_data/postgresql.conf,没有明确的方法来确定正确的。
- 做
- 有一次,我在名录中寻找正确的数据,我怎么重新一个新创建的Postgres的容器,这个数据在
/var/lib/docker/volumes/4948af.../_data
我有一个每日完整系统Rsync备份。这对恢复有什么帮助(恢复整个系统的情况不大)?
这是一种很好的方法,因为它提供了数据路径的备份。对此的自动化解决方案会很好,所以注册路径不会被忘记。在尝试脚本时,它只会保存多卷数据容器的第一个卷的路径。 - 我可以将保存的路径中的数据导入到一个新的容器中,但是当我重新创建容器时,我将如何实际重新连接到路径? – ChrisW
@ChrisW是的,我的脚本现在只关心第一卷。重新连接是我的答案的最后一部分,在https://github.com/VonC/b2d/blob/bb0a9afb4195da083e77157d54cb626d1b9eaa1d/updateDataContainerPath#L35-L38 – VonC
完成,对,我明白了,这将如何工作!我会用一些测试容器来尝试一下。感谢您的解释。 – ChrisW