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

ops/2024/10/25 2:20:31/
  缘起:由于看到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 这三个路径地址就是你外部目录存储数据的目录。只要挂载之后,数据就都会存储到你外部目录中。

解决:

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


http://www.ppmy.cn/ops/128210.html

相关文章

freeswitch-esl动态控制录制音频(开始、停止)

场景描述:在控制freeswitch中使用ESL socket连接,其实类型连接TCP差不多。 当A和B在通话中,我想录制它们通话内容,录制格式为wav格式音频文件。代码如下#include <iostream> #include <string> #include <esl/esl.h><

使用docker-compose搭建redis7集群-3主3从

下面是一个用于搭建 Redis 集群的 docker-compose.yml 示例文件&#xff0c;它会启动 6 个 Redis 节点&#xff08;3 主节点 3 从节点&#xff09;来构成一个最小的 Redis 集群。 同一个容器内网通讯没问题&#xff0c;但是你要是需要暴露到外网你需要用第二个yml 内网的 v…

『完整代码』坐骑召唤

创建一个按钮 作为召唤/消失坐骑的开关 将预制体放入指定文件夹 命名为Mount01 创建脚本并编写&#xff1a;CallMount.cs using UnityEngine; using UnityEngine.UI; public class CallMount : MonoBehaviour{public Button callBtn;GameObject mountPrefab;GameObject mountIn…

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券&#xff0c;共有6种优惠券样式&#xff08;参考了常见的优惠券&#xff09;&#xff0c;文本内容仅为示例&#xff0c;您可在此基础上调整为你想要的文本 预览效果 通过模拟数据&#xff0c;实现点击使用优惠券让其变为灰色的效果&#xff08;模…

LeetCode 第420场周赛个人题解

目录 Q1. 出现在屏幕上的字符串序列 原题链接 思路分析 AC代码 Q2. 字符至少出现 K 次的子字符串 I 原题链接 思路分析 AC代码 Q3. 使数组非递减的最少除法操作次数 原题链接 思路分析 AC代码 Q4. 判断 DFS 字符串是否是回文串 原题链接 思路分析 AC代码 Q1. 出…

ReactNative项目根据平台去判断允许用户是热更新还是强更新或者若更新

在 React Native 项目中&#xff0c;根据平台&#xff08;iOS 或 Android&#xff09;来决定是否允许用户进行热更新、强更新或弱更新&#xff0c;通常需要考虑以下几个因素&#xff1a; 平台政策&#xff1a; iOS&#xff1a;App Store 严格限制了热更新的能力&#xff0c;因此…

大数据新视界 --大数据大厂之数据脱敏技术在大数据中的应用与挑战

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

实战:大数据冷热分析

实战&#xff1a;大数据冷热分析 冷热分析&#xff08;Hot and Cold Data Analysis&#xff09;的目的主要在于优化存储系统的性能和成本。通过识别并区分访问频率和存储需求不同的数据&#xff0c;可以采取适当的存储策略&#xff0c;进而提高系统的效率和用户体验。终极目的…