针对我们的群辉来讲,更换磁盘、重装系统很多数据想恢复,今天我们介绍下如何恢复我们的docker跑的各种程序。
介绍
docker本身为了方便部署,对程序以及数据和配置进行打包,如果保留着docker的文件那么恢复是很简单的事情。
举个栗子:
Microsoft Word大家都使用过,通过它我们创建了个“设计.docx”文件。 那么”设计.docx”文件就是数据。只要数据没丢,即使Word重装甚至更换系统、更换电脑硬件都没有影响的。
Microsoft Word相当于我们的docker套件(docker程序本身);那么”设计.docx“相当于我们的”镜像、容器、网络等“
它们在哪
首先我们的docker套件,通过套件中心可以查看:
比如我的安装到了volume3上,也就是“存储空间3”。那么在系统目录结构里面就是“/volume3/@appstore/Docker”目录。
@appstore 是群辉安装套件的目录。群辉自身的一些目录喜欢用@符作为名称前缀。
一般在相同的volume下,我的就是”/volume3/@docker“,在docker套件安装目录下,会有一个软链,指示了docker的数据目录的位置:
docker的数据本身是root账户管理的,所以对其进行操作需要sudo获取临时root权限。
软链:截图中带箭头,软链类似windows里面的快捷方式。箭头后面表示软链的位置,这俩相当于一样的了。
如何迁移
docker套件的安装位置为了找到docker数据的目录,方便进行备份等。docker套件不需要过于关注,有问题卸载重装即可。
因为是@符开头的,所以通过群辉的界面不是很方便操作或者备份它,我一般通过ssh远程连接控制。
开启ssh,连接到服务器,之前我们也讲过, 可以看看我的历史文章。
如果我们要更换volume1磁盘,
1. 把/volume1/@docker拷贝到其他磁盘上
sudo mv /volume1/@docker /volume2 # mv 可以改成cp进行复制
2. 更换磁盘,创建存储空间、恢复系统。
3. 将@docker目录移动回来, 或者把docker安装到@docker对应的volume上。如果先安装docker,先停用docker,删除原有目录,再移动过去。
@docker目录不移动也可以,只要软链正确即可。【看不懂此句的忽略即可】
4. 最重要一点,也是容易忽略的:我们映射的卷是否发生变化!
比如截图的这个容器,我把docker/data映射到/data下面了。注意此处的docker是共享文件夹的docker!
如果docker所在的卷发生了变化(比如重装系统后,磁盘顺序发生变化),原来是/volume1/docker现在变成了/volume2/docker。那么你需要删除后,重新映射,再启动容器。