自学内容网 自学内容网

docker 误删gitlab文件,另类的删库跑路,如何进行恢复?

  缘起:
    由于看到linux服务器内存快满了,于是本着责任感,想着清理一下内存,结果在看到docker文件占了20多个G,于是想着,
    我们就三个容器,为啥这么大,肯定是有诈,于是就一个个排查,于是就把盟友(gitlab)给送进了回收站,为啥送它进去,
    因为我发现它存在两个,想着肯定是无用,而且还占了2个多G,我还特地删完以后,重新打开gitlab ,发现还是可以打开的,然后就更加信心满满的,
    直接回收站也永久删除了。

问题发现

在删除一段时间后,我又去重新打开一遍,这一次,上天没在眷顾我,发现打不开了,我去,当时脑子懵懵的,有种眩晕感,哈哈哈,一想到好多代码数据都在,没了可咋办?于是赶紧先截图:
在这里插入图片描述
为啥截图,是因为想着恢复一下,就和windows 一样,就算回收站删掉了,文件也可以恢复。

文件恢复(无用):

(1)去了电脑店,人家说不会linux 文件恢复 ------------------失望了
(2)问了堡塔的官方人员,人家说恢复不了 -------------------绝望了
在这里插入图片描述
当时都有种想跑路的冲动,但想着既然问题出来,就要解决问题,不能当逃兵,哪怕付出再大的代价。

希望曙光

这个时候我发现,我容器gitlab 的目录还是可以打开的,而且数据也还在,gitlab 的数据都存在git-data 中。
在这里插入图片描述
在这里插入图片描述
这就说明一个问题,我当时删掉的可能没包含数据,查了资料,发现docker 管理数据有两种方式:数据卷(Volumes)和 挂载主机目录 (Bind mounts),我们应该是用了第二种方式,所以我当时删掉的应该是gitlab 镜像,但为啥我删掉镜像之后,宝塔那边还显示镜像在,这是我很疑惑的?算了,不管这个了,那既然思路在了,那就重新部署镜像和容器就好了,然后挂载的时候,重新挂载到外部目录中就好了。

说干就干

(1)先下载gitlab镜像:docker pull gitlab/gitlab-ee:16.7.0 这个时候你会发现下载不了,因为这个下载源在国外,所以下载不了。
于是我换了种方式,采用翻墙,去下载下来,然后导入进去。具体的操作也就两个命令,docker pull 和docker save ,可以百度去看看。
(2)创建容器

docker run -d \
  --hostname 192.168.18.32 \
  --name gitlab \
  -p 443:443 -p 33280:80 -p 33322:22 \
  -v /mnt/meioRaid5/bt/gitlab/etc:/etc/gitlab \
  -v /mnt/meioRaid5/bt/gitlab/log:/var/log/gitlab \
  -v /mnt/meioRaid5/bt/gitlab/opt:/var/opt/gitlab \
gitlab:latest

/mnt/meioRaid5/bt/gitlab/etc 和 /mnt/meioRaid5/bt/gitlab/log和 mnt/meioRaid5/bt/gitlab/opt 这三个路径地址就是你外部目录存储数据的目录。只要挂载之后,数据就都会存储到你外部目录中。

解决:

最后打开对应的地址,完美解决,哈哈哈哈,总算松了口气!!!
在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_43929450/article/details/143004986

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!