我最近创建了一个在windows上的boot2docker上运行的mongodb docker实例.
不幸的是,在我尝试使用kitematic时,我设法意外地从mongo容器中删除了卷,无法再访问我的数据.
蒙戈实例似乎已经创造了旧卷,现在剩下的晃来晃去(孤儿),而不是安装在任何容器新卷.
有没有办法恢复这个?
感谢您的回复,它让我走上正轨,我设法使用以下命令启动一个新的mongo容器
docker run -d -v 571284fbe08a3f2b675af299ec14e55550bad623f6316914d465843fa12d6f18:/data/db mongo
Run Code Online (Sandbox Code Playgroud)
其中571284fbe08a3f2b675af299ec14e55550bad623f6316914d465843fa12d6f18是使用标识的悬空体积
docker volume ls
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我通常会注册我创建的任何数据卷容器的路径(在文件中)。请参阅“ 用于持久数据的Docker卷-仅通过容器路径就足够了吗? ”和我的脚本updateDataContainerPath。
我所看到的是:
Mounts.Source路径,对于新的数据量容器,这足以使您访问旧数据。
在您的情况下,由于您没有注册先前数据卷容器的路径,因此您将不得不搜索/mnt/sda1/var/lib/docker/volumes/已知文件。
这个答案可能只是对@VonC的重写,但是我觉得有必要总结一下。这是我要执行的步骤,以恢复在删除并重新创建容器后已“分离”的卷。
docker volume ls -f 'dangling=true' 查看所有分离的卷docker volume inspect <volume_hash>在每一个上看他们坐在哪里(/var/lib/docker/volumes/就我而言)/_data文件夹以猜测谁是谁。docker volume prune将删除所有悬空的体积(因此将来可能会更容易地搜索正确的悬空体积^^)| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |