• 不小心删除了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
    
    • 1

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

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

  • 相关阅读:
    RNA-seq 详细教程:分析准备(3)
    PAT:1020 Tree Traversals
    每日刷题记录 (十)
    【云原生 | 19】Docker数据存储详解
    Doker学习笔记1(狂神)
    财务RPA机器人真的能提高效率吗?
    中国石油大学(北京)-《 渗流力学》第三阶段在线作业
    QT连接Sqlite
    MySQL - Explain详解
    47. 全排列 II
  • 原文地址:https://blog.csdn.net/qq_43040108/article/details/127790276