不小心删除了docker/overlay2怎么办?

服务器硬盘容量达到顶峰,没有空闲空间。利用df -h的时候查看到/data/docker/overlay2占用最大。以为这里面都是docker的缓存文件,删除也无妨,所以直接通过 rm -rf 命令删除。(没有做任何备份)删完之后整个人就傻了,所有的容器运行全部失败。

此时!不要慌,不要着急做其他操作。按照下面步骤,可以救回来!

首先讲清一个概念,这个overlay2不是缓存文件,他是镜像和容器之间的中间层,破坏了这个文件等同于破坏了镜像和容器,除非你能找回,否则只能重来,具体的理论知识大家可以在看overlay2的详细介绍。

第一步:
用docker ps -a查看容器,找到坏掉的容器,我们以mysql为例。
用docker inspect 容器ID 查看容器的元数据。
我们需要看的最关键的几点:1. 版本号 2. 数据卷共享 3. 端口映射。

版本号:

在这里插入图片描述

数据卷共享:

在这里插入图片描述

端口号:

在这里插入图片描述
可以看出我的mysql镜像是8.0.25,数据卷共享是在我服务器上/data/mysql/datadir/ 这个路径下,只要这个路径的文件不被破坏,那就丝毫没有问题。

接下来很简单了,删除你的容器,删除你的镜像!反正你也无法在run起来了。

然后用docker run 重新来!

docker run -name mysql -p 6464:3306 -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /data/mysql/datadir:/var/lib/mysql mysql:8.0.25

这时候他就会重新下载镜像,跟你之前的配置完全一样,端口号也不变。利用docker ps查看运行是否成功,再去看看mysql是否连接正常就好了!

其他的镜像也同样是这么个道理!血的教训,在不清楚文件是什么的时候千万不要rm,rm之前一定要做备份!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值